Nginx相当于一个服务器,中间件,等等,总之介于客户端和服务器中间的。所以可以做的事很多,比如缓存或者分配。
做负载均衡的话分为以下几步:
1.在etc/nginx/conf.d下面新建一个nginx.conf文件
upstream backend{
#ip_hash;
server 127.0.0.1:9701 weight=1;
server 127.0.0.1:9702 weight=2;
server 127.0.0.1:9703 weight=4;
}
server {
listen 8005;
server_name 127.0.0.1;
access_log /var/log/nginx/myblog_access.log;
error_log /var/log/nginx/myblog_error.log;
charset utf-8;
client_max_body_size 75M;
#root /home/linux/Desktop/wll_MySite;
location / {
#include uwsgi_params;
#uwsgi_pass 127.0.0.1:9099;
#uwsgi_read_timeout 2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
#Backend自己随便起的,但是要保证和upstream后面的名一致
proxy_pass http://backend;
}
#location /static/ {
#expires 30d;
#autoindex on;
#add_header Cache-Control private;
#alias /home/linux/Desktop/wll_MySite/static/;
#}
}
这个文件相当于一个总调度
2.将写好的django文件复制几份,并且生成各自的uwsgi.ini文件
[uwsgi]
# Django-related settings
socket = 127.0.0.1:9801
# 项目绝对路径
#一般放在www下面,
chdir = /home/linux/Desktop/word
# Django的wsgi文件相对路径
#项目重命名后,要注意文件的相对路径并没有改变
wsgi-file = mysite/wsgi.py
# process-related settings
# master
master = True
# 最大进程数
#根据情况设置
processes = 4
# 线程数
threads = 2
#设置此参数,有一个主进程
master=True
#守护进程的方式运行,log日志存在此log文件里
#每个项目对应一个log文件
deamonize=/var/log/uwsgi/djangoProject.log
#主进程id写入文件里
pidfile= /var/log/nginx/uwsgi.pid
# ... with appropriate permissions - may be needed
# chmod-socket = 664
#退出时,清理环境
vacuum = True
reload-mercy = 10
max-requests = 5000
limit-as = 512
buffer-size = 30000
3.在etc/nginx/conf.d的目录下创建另一个conf文件,如nginx_demo.conf
server {
listen 9701;
server_name 127.0.0.1
access_log /var/log/nginx/myblog_access.log;
error_log /var/log/nginx/myblog_error.log;
charset utf-8;
client_max_body_size 75M;
root /home/linux/Desktop/1/Hello;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9801;
uwsgi_read_timeout 30;
}
location /static/ {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/linux/Desktop/1/Hello/static/;
}
}
在这个文件里写三个server,并且要listen的是总调度里的端口,然后和对应的uwsgi端口对应上。还有就是需要注意的是三个项目的绝对地址要写对
4.重启nginx服务sudo service nginx restart
5.打开三个终端,各自运行项目uwsgi ini --uwsgi.ini
6.打开浏览器,访问页面,这个时候访问的端口就是总调度里的端口,刷新页面会出现不同的显示就OK了