1. 程式人生 > >專案部署三

專案部署三

Nginx和uwsgi

Nginx體積小 效能優越 opoll 單程序非阻塞 類似於攜程 輕鬆達到百萬級
阿帕奇 多程序加多執行緒

Nginx是一個web伺服器 還是一個郵件伺服器 還是一個靜態資源伺服器 還是一個反向代理伺服器 還是一個負載均衡伺服器

正向代理:當我們翻牆訪問google時,使用的latern 自由門等伺服器代理訪問google 這就是正向代理;爬蟲用到的代理伺服器也是正向代理
代理分為 透明/匿名/高匿代理

反向代理:我們訪問百度時  百度的總伺服器向其它的伺服器叢集分發請求這就是反向代理;即用自己的伺服器代理自己的伺服器

負載均衡:

------------------------------------------------
先完成專案的上傳 解壓縮 工作
修改settings.py配置檔案
STATIC_ROOT = 'path' 靜態資源收集存放的位置
執行收集靜態資源的命令
python manage.py collectstatic
建立對應的資料庫 執行資料庫的同步和sql指令碼初始化的工作
python manage.py makemigrations
python manage.py migrate

Nginx是一款軟體 nginx安裝
apt/apt-get install nginx

which nginx 檢視nginx安裝的目錄
ps -ef | grep nginx 檢視nginx是否啟動 及其監聽的埠

ps -ef | grep uwsgi 檢視uwsgi是否啟動
發現uwsgi啟動了6個程序 一個主程序 四個子程序 一個守護程序
uwsgi --stop uwsgi.pid 關閉uwsgi

編輯配置uwsgi檔案 
vim uwsgi.ini
檔案中寫
[uwsgi]
# 因為使用nginx做反向代理 所以這裡使用socket連線
socket = ip:port
# 專案的根目錄 必須是絕對路徑
chdir=path
# 指定網管介面檔案
wsgi-file = mysite/wsgi.py
# 指定啟動的程序資料量
processes=4
# 每個程序需要的執行緒數
threads=2
# 指定是否由主程序管理
master=true
# 指定存放程序編號的id檔案
pidfile=uwsig.pid
# 指定程序停止時清楚垃圾資料
vacuum=true
# 指定啟用日誌記錄於守護程序
daemonize=uswgi.log
# 指定靜態檔案對映
# static-map=/static=static_file

cd /etc/nginx/
sudo vim nginx.conf 配置nginx的配置檔案

在 Virtual Host Configs下新增 (不是必須在Virtual Host Configs下)
server {
    listen 80; 監聽80埠 
    server_name ip; 監聽的ip
    
    location / {    / 監聽所有的請求
        include uwsgi_params;    cd etc/ ls *params
        uwsgi_name ip:port; 反向代理到uwsgi uwsgi監聽的ip和埠
    }

    location /static { 配置靜態資源 path為靜態資源路徑
        alias path
    }
}
重新啟動uwsgi和nginx
nginx    啟動伺服器
nginx –s stop     停止伺服器;不論是否有資料未完成,直接退出 慎用
nginx –s quit     停止伺服器;如果資料處理未完成,等待完成退出
nginx –s reload   重新載入
nginx –s reopen   重啟