1. 程式人生 > 實用技巧 >轉canda uwsgi nginx部署

轉canda uwsgi nginx部署

conda 環境不必多說:conda(或source) activate test進入test虛擬環境

接下來安裝uwsgi:

  pip install uwsgi 在conda環境下大概率安裝不成功,可以使用一下命令代替:

    conda install-c conda-forge uwsgi

  執行uwsgi有可能碰到 libiconv.so 動態庫找不到的問題,同樣可以用conda安裝

    conda install-c conda-forge libiconv

uwsgi安裝好後,需要在django專案根目錄下建立一個名為uwsgi.ini的檔案,在裡面配置好uwsgi:

  

[uwsgi]
socket=127.0.0.1:8000                                  # 指定專案執行的埠號,用nginx的時候就要配socket
pythonpath=/home/admin/test/ # 指定專案所在位置,在使用conda虛擬環境時必須要有這一條
chdir=/home/admin/test/                  # 指定專案的目錄
wsgi-file=test/wsgi.py # 專案上wsgi.py所在的位置,與settings目錄相同
processes=1                          # 開啟的程序數量
threads=2
master=True # master :允許主執行緒存在(true)
pidfile=uwsgi.pid
daemonize=uwsgi.log # 日誌,uwsgi無法啟動時來這檢視錯誤日誌

uwsgi配置好後,要啟動uwsgi, 啟動命令:

  uwsgi --ini uwsgi.ini # 啟動uwsgi, 一定要在django實際使用的conda環境下,否則會報錯

  uwsgi --stop uwsgi.pid # 停止uwsgi

  uwsgi --reload uwsgi.pid # 重啟uwsgi

uwsgi配置好後,要配置nginx:

  首先安裝nginx, 執行命令 sudo apt install nginx

  nginx 命令:

    sudo service nginx start 啟動

    sudo service nginx stop 停止

    sudo service nginx restart 重啟nginx

    sudo nginx -s reload 過載配置檔案

    sudo nginx -s quit 優雅的停止nginx

    sudo nginx -s term 停止nginx

    sudo nginx -s reopen 開啟一份新的日誌

  配置nginx:

    在/etc/nginx/site-available下新建檔案test.conf:    server {

        listen 8888;                                        #nginx監聽的埠
        charset utf-8;
        client_max_body_size 75M;
        location / {
          uwsgi_pass 127.0.0.1:8000;                  # 與uwsgi中配置的相一致
          include /etc/nginx/uwsgi_params;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header REMOTE-HOST $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

      location /static/ { # 如果用到靜態檔案
        alias /home/test/test/static/;
      }

}

    然後要建立軟連線:

      sudo ln -s /etc/nginx/site-available/test.conf /etc/nginx/site-enabled/test.conf

  最後用 sudo nginx -s reload 命令啟動過載配置檔案即可

最後, 如果需要配置負載均衡:

// http模組中配置upstream
upstream test {
   server 127.0.0.1:8002 weight=2;
   server 127.0.0.1:8003 weight=1;
}

// 將server模組中的location替換為如下
location / {
                proxy_pass http://test;
}

分類:部署