1. 程式人生 > >django部署nginx wsg

django部署nginx wsg

部署上線流程

nginx伺服器一臺 django伺服器多臺

代理的服務專案每個django伺服器上都要有

在nginx伺服器安裝nginx並配置好 詳見Nginx.pdf

在每個django伺服器上安裝uwsgi,並且在專案中新建uwsgi.ini 檔案 [uwsgi] socket=0.0.0.0:8888 用作代理伺服器的時候使用 #http=0.0.0.0:8888 用作本地伺服器的時候使用 chdir=/home/hero/project 指定專案目錄 wsgi-file=project/wsgi.py 指定wsgi檔案 processes=2 啟動程序數,最好和cpu核心數一樣 threads=2 執行緒 master=True 代理,管理者 pidfile=uwsgi.pid 程序號存放檔案 daemonize=uwsgi.log 日誌存放檔案

1.用uwsgi本地跑專案 uwsgi中註釋socket,開啟http 執行uwsgi伺服器 uwsgi --ini uwsgi.ini 瀏覽器視窗輸入對應django伺服器ip 和埠就可以訪問專案

2.反向代理用nginx伺服器跑一臺django伺服器,不做負載均衡 uwsgi中開啟socket,註釋http 執行uwsgi伺服器 uwsgi --ini uwsgi.ini 在nginx伺服器的/usr/local/ngnix/conf/nginx.conf中的server中 location / { #代理伺服器的runserver伺服器 #proxy_pass http://47.100.42.251:8888

; #proxy_set_header X-real-ip $remote_addr; #proxy_set_header Host $http_host;

          #代理一臺伺服器
          include uwsgi_params;
          uwsgi_pass 47.100.42.251:8888;   這裡的ip埠和專案中uwsgi.ini中的socket要一樣

     }

3.反向代理用nginx伺服器跑多臺django伺服器,負載均衡 在nginx伺服器的/usr/local/ngnix/conf/nginx.conf中的server上面

upstream mjh{           這裡的mjh是給負載均衡起的名字
    server 47.100.42.251:8888 weight=1;
    server 47.94.234.14:8888 weight=1;
    server 47.95.3.141:8888 weight=1 max_fails=3 fail_timeout=300;
    }

之後再server的location中換成
	#代理多臺伺服器
         include uwsgi_params;
         uwsgi_pass mjh;  這裡是上面負載均衡的名字

4.反向代理用nginx伺服器跑多臺django伺服器,並把靜態檔案放到nginx伺服器上

在nginx伺服器的/usr/local/ngnix/conf/nginx.conf中的server下面
location /static {
        alias /var/www/myApp/static/; 這裡var是伺服器根目錄的資料夾,一般用來存一些修改經常改變的檔案
				myApp最好換成工程的名字
    }

在nginx伺服器上新建/var/www/myApp/目錄層級

在一臺django伺服器的專案的setting中的靜態檔案中加入
STATIC_ROOT='/home/hero/static'這裡是一個目錄
這是為了把工程的所有靜態檔案匯出到這個目錄下
一般自己copy會去缺少admin等相關的靜態檔案
然後把匯出的static資料夾  
傳送到nginx伺服器的指定目錄下   scp -r static/ [email protected]:/var/www/myApp/
重啟nginx服務