Nginx搭建负载均衡解决方案
目录
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服务即可。