目錄
Nginx非常好用,做靜態文件解析、反向代理、負載均衡都非常的簡單易用。今天記錄下在ubuntu16.04上使用nginx給django項目搭建負載均衡的解決方案。
1.安裝nginx
輸入命令:apt install nginx
2.查看版本
輸入命令:nginx –v
3.查看運行狀態
輸入命令:sudo systemctl status nginx
默認安裝成功後,nginx就正常啓動了,如果未啓動,可以通過以下命令啓動nginx
service nginx start
#或者
systemctl restart nginx
4.驗證啓動
在瀏覽器中輸入:http://127.0.0.1,顯示如下則說明成功
5.相關目錄說明
- /usr/sbin/nginx 主程序
- /etc/nginx 存放配置文件
- /etc/share/nginx 存放靜態文件
- /var/log/nginx 存放日誌的目錄
6.修改配置文件
命令行切換到/etc/nginx目錄,修改nginx.conf,在http{}中新增如下內容:
upstream python.server.com{
server 127.0.0.1:8001 weight=10;
server 127.0.0.1:8002 weight=10;
server 127.0.0.1:8003 weight=10;
}
server{
listen 8006;
server_name 127.0.0.1;
location / {
proxy_pass http://python.server.com;
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html{
root html;
}
}
新增後的文件截圖如下所示:
注意:
(1) 每一行的空格一定是通過空格鍵敲出來,不能用tab鍵,不然啓動會報錯(2)
(2) 在使用vi命令的時候,如果出現點擊方向鍵顯示A 或者B,且backspace按鍵不管用的情況,可以卸載vim,重新全量安裝,相關命令如下:
卸載vim-tiny:
sudo apt-get remove vim-common
安裝vim ful:
sudo apt-get install vim
7.部署django服務
將單一項目拷貝,複製爲三個文件夾,如下:
通過命令行分別啓動這三個項目,啓動項目的命令相同,但是每個項目使用的端口不同:
python manage.py runserver 127.0.0.1:8001
python manage.py runserver 127.0.0.1:8002
python manage.py runserver 127.0.0.1:8003
8.驗證負載均衡
三個項目的view.py中都有一個默認的index接口方法,我們直接在瀏覽器中輸入:http://1270.0.1:8006/index/,然後不停刷新,會發現方法會自動在三個服務中的index方法切換。
至此通過nginx做負載均衡的方案搭建完畢。
9.遇到的錯誤記錄
有時候可能會出現以下錯誤信息:
報的是域名不符合規範,出現這個問題的主要原因有以下幾種可能:
(1)nginx中nginx.conf的配置有問題
upstream和proxy_pass 後面要使用正確的域名格式,只需要格式正確即可,即:你不能出現下劃線這樣的。
(2)python服務的ALLOWED_HOSTS
如果已經正確配置了域名格式,但是還是有這個問題,那就配置下項目中的setting.py文件的ALLOWED_HOSTS,修改ALLOWED_HOSTS=[] 爲ALLOWED_HOSTS=[‘*’]。或者按照上述的設置修改爲ALLOWED_HOSTS=[‘python.server.com’] ,然後重啓python服務即可。