Nginx负载均衡

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了


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值