25,Nginx反向代理负载均衡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了25,Nginx反向代理负载均衡相关的知识,希望对你有一定的参考价值。

1,什么是反向代理
1,代理顾名思义就是代理某人去做某事,比如律师代理,中介代理。往往你不能直接自己做的事,都需要找代理

2,为什么要用反向代理
1,在没有代理服务器之前,用户访问web服务器是如下图:
技术图片
2,在实际业务生成环境中,比如我们访问web服务器,在用户和服务器直接往往有一台或者多台代理服务器用来转发你的访问请求,代你去访问web服务器,然后将结果返回给用户。当你只有一台web服务器的时候,这种代理看起来其实意义不大,用户直接访问web服务器不是更快?但生产中不仅仅一台web,这个时候用代理来转发,并实现负载均衡就显得非常重要了!
技术图片
3,反向代理负载均衡
Nginx代理支持的协议
技术图片

Nginx反向代理支持协议
技术图片
反向代理模式与 nginx 代理模块总结如表格所示
技术图片

4,部署Nginx反向代理负载均衡
环境:
nginx-05:外网10.0.0.5内网172.16.1.5
web-07:外网10.0.0.7内网172.16.1.7(部署完成)
web-08:外网10.0.0.8内网172.16.1.8(部署完成)
1)nginx-05安装nginx反向代理软件
yum provides nginx
yum -y install nginx
2)定义一个代理模块,新建一个文件
[root@172 nginx]# cat provxy_params

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;

配置虚拟主机,在虚拟主机里指定web域名,proxy模块和地址池模块
cat /etc/nginx/conf.d/proxy_wordpress.conf

upstream upload_pools
    server 172.16.1.7:8080;
    server 172.16.1.8:8080;
    
server 
    listen 80;
    server_name blog.oldboy.com;
    location / 
        proxy_pass http://uploa_pools;
        include proxy_params;
    

当有多个域名代理,只要增加代理模块和地址池模块(地址池名字自定义)就行!
3,测试
1,访问域名blog.oldboy.com在两台web系统访问日志里可以看到来自nginx反向代理负载均衡来的地址
技术图片

以上是关于25,Nginx反向代理负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 反向代理负载均衡与动静分离

Nginx 反向代理负载均衡与动静分离

分别使用Nginx反向代理和Haproxy调度器实现web服务器负载均衡

Nginx反向代理实现负载均衡配置图解

Nginx反向代理负载均衡, keepalived高可用

nginx反向代理访问很慢,我做了负载均衡,现在几乎无法访问,有谁能帮我解决一下,万分感谢。