1. 程式人生 > >django+uwsgi+nginx

django+uwsgi+nginx

配置之前,首先了解uwsgi以及nginx的配置引數,這裡就不多敘述,直接開始配置

以ubuntu為例,首先確保你的ubuntu系統執行python manage.py runserver 執行成功。

安裝uwsgi

uwsgi是python 的一個模組,安裝時需要注意的時你的專案環境時py2還是py3

pip install uwsgi //python2
pip3 install uwsgi //python3

安裝成功使用uwsgi啟動django專案

首先使用命令測試

建立data目錄,將我的cmdb放到data目錄下,如圖

使用命令啟動

uwsgi --http 192.168.11.179:8080 --file cmdb/wsgi.py --static-map=/static=static

引數說明

  • http 這個就和runserver一樣指定IP 埠
  • file 這個檔案就裡有一個反射,如果你在呼叫他的時候沒有指定Web Server就使用預設的
  • static 做一個對映,指定靜態檔案,如css等檔案

此時開啟瀏覽器輸入http://192.168.11.179:8080即可訪問成功

啟動成功之後,可以嘗試使用uwsgi配置檔案啟動,

uwsgi配置檔案

我的專案中指令碼名稱mysite_uwsgi.ini

[uwsgi]
# 專案目錄
chdir=/data/cmdb  # 路徑根據你的專案的真實路徑填寫
# 指定專案的application
module=mysite.wsgi
# 指定sock的檔案路徑       
socket=/opt/proj/script/uwsgi.sock # 根據情況填寫,不寫也不影響
# 程序個數       
workers=5
pidfile=/data/uwsgi.pid  # 儲存的pip目錄,建議和專案同級目錄
# 指定IP埠,根據情況選擇http or socket,一般選擇socket
# http=192.168.11.179:8080
socket      = 192.168.11.179:8080 
# 指定靜態檔案
static-map=/static=/data/cmdb/static
# 啟用主程序
master=true
# 自動移除unix Socket和pid檔案當服務停止的時候
vacuum=true
# 序列化接受的內容,如果可能的話
thunder-lock=true
# 啟用執行緒
enable-threads=true
# 設定自中斷時間
harakiri=30
# 設定緩衝
post-buffering=4096
# 設定日誌目錄
daemonize=/data/uwsgi.log   # 根據實際專案路徑填寫

啟動指令碼

/usr/local/bin/uwsgi --ini  mysite_uwsgi.ini  # 一般環境不同,此時的uwsgi的路徑也會不同

瀏覽器訪問 192.168.11.179:8080,成功即配置成功

安裝nginx

apt-get install nginx

啟動nginx,驗證是否成功

/etc/init.d/nginx start 
或者
service nginx start

 詳細配置就不再多敘述

最後開始配合使用

Django+uwsgi+nginx  

在nginx的預設配置目錄/etc/nginx/conf.d 新增cmdb.conf

server {
        listen 8000;  # 根據自己愛好設定埠,訪問的時候使用 
        server_name cmdb.com;
        access_log /var/log/nginx/access.log main; # Nginx日誌配置
        proxy_buffer_size 64k;
        proxy_buffers   32 32k;
        proxy_busy_buffers_size 128k;

        location /static {
            alias /data/cmdb/static;
        }
        location / {
                include uwsgi_params;
                uwsgi_pass 192.168.11.179:8080;
        }

}

重啟nginx

/etc/init.d/nginx restart

啟動後可使用 nginx -t 檢視是否成功

 瀏覽器輸入192.168.11.179:8000 (需要注意的是此時的埠是你的cmdb.conf 中監聽的埠,和你的命令啟動的8080埠不一樣)

現實成功,即配置成功