WSGIhtml
在生產環境中使用WSGI做爲python web的服務器python
WSGI:全拼爲Python Web服務器網關接口,Python Web服務器網關接口,是項目默認會生成一個wsgi.py文件,肯定了設置模塊,uWSGI實現了WSGI的全部接口,是一個快速,自我修復,開發人員和系統管理員友好的服務器,C語言編寫,效率高nginx
Nginxweb
使用nginx的的做用主要包括負載均衡,反向代理shell
項目經過Django+Uwsgi+Nginx進行線上服務器部署 後端
一、文件打包傳服務器,經過xshell瀏覽器
文件 > 傳輸 > ZMODEM > 用ZMODEM發送 > 文件或壓縮包服務器
Linux下壓縮包解壓命令:負載均衡
zip格式 : unzip 壓縮包路徑dom
tar.gz格式 : tar zxvf 壓縮包路徑
(rar格式壓縮包解壓較爲複雜,儘可能別傳rar格式)
二、Xshell使用技巧
文件 > 新建,開啓多終端
建議開多終端,這樣對uwsgi、Nginx、項目代碼進行調試修改時,能夠避免在一個終端下來回切換目錄,提升工做效率,具體開終端的個數根據實際需求來定,而且右擊tab終端名重命名,更加方便知道哪一個終端對應作哪些事情
三、修改配置文件問題
無論修改uwsgi的配置文件uwsgi.ini仍是修改nginx配置文件nginx.conf,修改完都必須重啓服務才能生效,而且啓動服務要在指定的目錄下面重啓
四、Uwsgi的安裝
方法一、pip install uwsgi(有網的狀況下)
方法二、沒網狀況下去官網下載uwsgi壓縮包,爲tar.gz格式,傳到服務器,進行解壓,解壓路徑/lib/目錄下面,而後切換到uwsgi文件目錄,執行如下兩個命令,便可完成安裝,示意圖以下(解壓路徑能夠自定義,記下來,方便之後進行維護)
python setup.py build
python setup.py install
五、Django項目中配置uwsgi
一、項目目錄(例如本例中DataBusines)下建立uwsgi.ini文件,配置以下
本地測試通常用:127.0.0.1便可,端口能夠自定
線上的話用線上服務器IP,端口自定,該配置訪問地址須要和nginx.conf中的配置同樣
例如:這是後面的nginx.conf配置文件,二者地址和端口須要一致
六、Uwsgi的使用(啓動、查看進程、關閉)
啓動uwsgi.ini,須要切換到項目目錄
啓動uwsgi: uwsgi --ini uwsgi.ini
查看uwsgi進程:ps ajx|grep uwsgi
關閉uwsgi:
查閱相關資料文檔,提到多種命令關閉方式,關閉命令的意義在於修改配置文件後,
通常須要重啓uwsgi纔會生效
一、uwsgi --stop uwsgi.pid(很差用,常常報pid找不到)
二、sudo pkill -f uwsgi -9(很差用,有可能報錯,無效的-9)
三、killall -9 uwsgi(該命令最好用)
七、經過uwsgi網頁訪問
由於uwsgi自己就是web服務器,咱們能夠經過更改配置直接經過uwsgi進行訪問網頁
以下圖:咱們在服務器經過vi更改配置文件爲http請求模式,更改後保存並重啓uwsgi服務器,在咱們本身的瀏覽器訪問設置的IP和端口,成功顯示頁面,證實uwsgi配置成功
http模式: 直接用uwsgi時使用
socket模式: 使用Nginx時使用
八、Nginx的安裝
方法一、pip install nginx(官方提供有該方法,可是以前在本地測試遇到坑,沒有配好,建議經過方法二中壓縮包方式安裝)
方法二、沒網狀況下去官網下載nginx壓縮包,爲tar.gz格式,傳到服務器,進行解壓,解壓路徑/lib/目錄下面,而後切換到nginx文件目錄,執行如下三個命令,進行安裝
./configure
make
sudo make install
執行完以上命令後,nginx被安裝在了/usr/local/nginx/,安裝成功
九、nginx的使用(啓動、查看進程、關閉)
進入nginx安裝目錄:cd /usr/local/nginx/
啓動nginx: sudo sbin/nginx
查看nginx進程: ps ajx|grep nginx
關閉uwsgi:
查閱相關資料文檔,提到多種命令關閉方式,關閉命令的意義在於修改配置文件後,通常須要重啓nginx纔會生效
一、sudo sbin/nginx –s stop(很差用,報異常無效的-s)
二、sudo pkill -f uwsgi -9(很差用,報錯,無效的-9)
三、killall -9 nginx(該命令最好用)
命令報錯示意
十、nginx的配置文件nginx.conf配置
具體如圖中所示,配置文件目錄/usr/local/nginx/conf/nginx.conf,配置文件的修改須要經過vi進行修改
十一、靜態資源配置
配置靜態資源目錄是由於讓靜態資源經過nginx能夠直接返回,不須要經過uwsgi,也就是讓uwsgi只處理後端邏輯,不處理靜態資源,優化性能
一、靜態資源在nginx.conf中的配置,路徑能夠自定義
二、在服務器上建立以下目錄
sudomkdir –vp /var/www/DataBusines/static/
三、修改目錄權限
sudochmod 777 /var/www/DataBusiness/static/
四、項目代碼中配置settings,加入該目錄(本地演示在IDE中,線上能夠用vi)
五、收集全部靜態文件到static_root指定目錄
服務器上切換到項目目錄(DataBusines),執行以下命令收集
python manage.py collectstatic
六、查看靜態資源目錄
十二、更改uwsgi.ini配置
剛纔在作uwsgi時候,用了http配置,如今nginx正式搭建起來,須要改爲socket配置,修改完畢要重啓uwsgi
Settings.py須要debug設置爲不調試,容許訪問的地址設置爲服務器地址
以上步驟完成後,訪問服務器主機地址和端口,若是nginx.conf中配置的爲80端口,則地址欄不須要輸入端口,由於瀏覽器請求端口也是默認爲80端口,非80端口的須要本身在ip後面添加