nginx反向代理负载均衡

负载均衡,说白了,所有请求发给A服务器,然后它转发到其它服务器中实现负载均衡

反向代理的好处

解决了网站服务器对外可见的问题,提高了网站服务器的安全性;
节约了有限的IP地址资源,后端服务器均可使用私有IP地址与代理服务器进行通信;
加速了网站的访问速度,减轻了真实web服务器的负荷。

反向代理的工作流程

用户通过域名发出访问请求,该域名被解析为反向代理服务器的IP地址;
反向代理服务器接收用户的请求;
反向代理服务器在本地缓存查找是否存在当前用户所请求的内容,找到则直接把内容返回给用户;
如果本地没有用户请求的内容,反向代理服务器会以自己的身份去后端服务器请求同样的信息内容,并把信息内容发给用户,如果信息内容是可以被缓存的,则会将该内容缓存在代理服务器的本地缓存中。

负载均衡的配置流程:

1.在etc/nginx/cond.f路径下创建.conf类型的文件,在文件里面添加如下代码

upstream backend{
    #ip_hash;
    server 127.0.0.1:9701 weight=1;
    server 127.0.0.1:9702 weight=2;
}
server {
    listen         8005;//就是通过外网访问的端口
    server_name    127.0.0.1; 
    access_log      /var/log/nginx/nginx_demo_access.log;
    error_log       /var/log/nginx/nginx_demo_error.log;
    charset     utf-8;

    client_max_body_size 75M;
    #root /home/linux/Desktop/wll_MySite;
    location / { 
    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;
    proxy_pass http://backend;
    }
}

配置好以后将写好的django项目上传到服务器中,上传到服务器不同的文件夹下,开始为项目配置uwsgi的配置文件(每一个路径都要配置),代码如下:

[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

在进入.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/;
     }
 }

上面9701和9708进行绑定

2)重启nginx:
sudo service nginx restart
打开三个终端进行运行项目(和**.ini文件同一目录下执行):
uwsgi -ini 配置文件的路径(hello/1.ini)

9801 9802 9803 nginx和uwsgi交互的端口号

9701 9702 9703 三个服务器端口

8005 浏览器登录端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值