當前位置:
首頁 > 知識 > Django(Ngnix)項目部署 負載均衡

Django(Ngnix)項目部署 負載均衡

踩過不少坑,所以一定要看清楚自己的配置,地址這些都不能有錯

簡單的說就是本機當Ngnix,分配客戶端的請求給不同後端的伺服器,解決大量並發訪問服務問題

首先:

在本機與後端伺服器都要先安裝Uwsigi

sudo apt-get install libpython3.6-dev

pip install uwsgi

先在後端的各個伺服器上操作

1 先進入你創建的虛擬環境下 #注意!一定要安裝好項目所需要的環境

2把項目拷進去,cd 到項目文件夾里 #注意!項目不能用root用戶拷進來

3 pwd 複製這個路徑:

4 在這個項目目錄下建立uwsgi文件 記得是項目主目錄,也就是和Template等處於一個目錄下,別弄錯

sudo vim uwsgi.ini

5 在裡面寫入

[uwsgi]

socket=0.0.0.0:8000

#http=0.0.0.0:8000

chdir=/home/gms/project #這裡就可以粘貼你複製的項目路徑,一定不能錯!

wsgi-file=project/wsgi.py #項目下的wsgi.py的路徑

processes=1 #多少個進程可自定義

threads=2 #可自定義

master=true

pidfile=uwsgi.pid

daemonize=uwsgi.log

保存退出

6 cd 到有seeting.py文件的目錄下,也就是與你項目同名的文件,修改項目的settings.py 文件

DEBUG=FALSE

ALLOWED_HOSTS = ["*"]

STATIC_ROOT=』/var/www/myApp/static/』

#這個路徑可自定義,但要與本機創建的static目錄相同,可先到本機窗口先創建此目錄,在第二部分的第7條保存退出

7 確認本機創建static文件和配置好ngnix.conf文件後,把項目里的static文件里的東西遷移過去本機新創建的static文件里

cd .. #到達項目主目錄

python manage.py collectstatic #執行遷移前要確定本機有沒有創建好這個文件!

8 sudo uwsgi --ini uwsgi.ini 啟動服務

9 sudo ps -aux | grep uwsgi 查看啟動進程確定是否開啟

第二部分在本機操作

本機當 Nginx,分發客戶端的請求給後端的伺服器

1 安裝

sudo apt-get install zlib1g-dev

2 拿下安裝包,解壓 #解壓包可自取

鏈接:https://pan.baidu.com/s/1DF9MyD2Dms89Qe7dLbuAiQ 密碼:i70u

tar -xzvf nginx-1.11.3.tar.gz

tar -xzvf openssl-1.0.1.tar.gz

tar -xzvf pcre-8.41.tar.gz

3 進入Nginx解壓目錄

cd /home/gms/nginxFile/nginx-1.11.3/

4 輸入來配置環境

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gizp_static_module --with-prce=../prce-8.41 --with-openssl=../openssl-1.0.1

5 編譯

make

如果出現prce.h No such file or directory,就安裝 sudo apt-get install libpcre3 libpcre3-dev

負載均衡

6 安裝

sudo make install

7 打cd命令 回主目錄,創建一個static文件,存放項目的css,js,jq等文件 注意要在分發伺服器上把項目的static文件遷移過來

sudo mkdir -vp /var/www/myApp/static #可自己命名,要與下面nginx.conf配置的相同

Sudo chmod 777 /var/www/myApp/static/ #設置文件的許可權

8 配置nginx.conf 文件

vim /usr/local/nginx/conf/nginx.conf

內容

events {

use epoll;

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 300;

gzip on;

#mycom指定負載均衡器的名稱 ,可自定義,後面會調用

upstream mycom{

server 47.106.37.80:8000 weight=1 max_fails=1 fail_timeout=300s;

#47.106.37.80:8000 注意:這是我自己分發的後端伺服器的IP和埠,記得修改

server ztwo.top:8000 weight=2 max_fails=2 fail_timeout=300s;

#ztwo.top:8000 注意:這是我分發的後端伺服器的IP和埠,記得修改

}

server {

listen 80;

server_name localhost 39.108.232.243:8000;

#注意39.108.232.243:8000這是自己的伺服器IP與埠

charset utf-8;

location / {

include uwsgi_params;

uwsgi_pass mycom; #注意:調用負載均衡器的名稱,上面定義的 需要同名

}

#配置你項目的static文件

location /static{

alias /var/www/myApp/static/;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}

}

8 啟動ngnix服務

sudo /usr/local/nginx/sbin/nginx

如果是改變了配置文件的話,再次啟動伺服器只要輸入

sudo /usr/local/nginx/sbin/nginx -s reload

9 查看進程確認是否開啟

sudo ps -aux | grep uwsgi

最後在瀏覽器直接輸入自己本機的IP或者域名加路由進行訪問即可

Django(Ngnix)項目部署 負載均衡

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

OpenResty 使用介紹
mybatis分頁設置方法

TAG:程序員小新人學習 |