Nginx代理和反向代理,负载均衡

发布者:上海IT外包来源:http://www.lanmon.net点击数:1290

通过Nginx提供的反向代理和负载均衡功能,可以合理地完成服务分配,提高网站的处理能力。同时,缓存功能可用于将不需要实时更新的动态页面输出结果转换为静态网页以形成缓存。提高网站的响应能力。
代理和反向代理
代理(转发代理,目标服务器不知道谁在访问)
它位于客户端和目标服务器之间,充当中继。实际上,客户端想要访问目标服务器,但由于某种原因无法直接访问,请求和目标服务器被发送到代理服务器,然后代理服务器请求目标服务器,并将返回的响应结果返回给客户端。
反向代理(用户实际上并不知道最终服务器,只是访问反向代理服务器)
客户端将反向代理服务器视为目标服务器,并且在将请求发送到反向代理服务器之后,反向代理服务器请求内部后端服务器将获得的响应结果返回给客户端。
特性:
安全。反向代理是安全的。可以隐藏真正的内部服务器。
特征。转发代理的主要目的是为防火墙中的LAN用户提供对外部网络的访问。反向代理的主要目的是为外部用户提供防火墙中的服务器,并为多个后端服务器提供负载平衡和缓存。
反向代理服务配置
在Nginx配置文件的位置块中,这是proxy_pass指令。
服务器{
听80;
Server_name test.test;
#将本机收到的test.test的所有请求转发给另一台服务器192.168.78.128
地点 /{
Proxy_passhttp://192.168.78.128;
#以下是其他辅助指令
Proxy_set_header Host $ host; #Change来自客户端的请求标头信息
Proxy_set_header X-Real_IP $ remote_addr; #user real access ipProxy_connect_timeout 2; #配置nginx与后端服务器建立连接的超时时间
Proxy_read_timeout 2; #配置nginx的等待响应超时,以向后端发出读取请求
Proxy_send_timeout 2; #配置nginx的等待响应超时,以向后端服务器发送写请求
Proxy_redirecthttp://www.baidu.com; #Used修改后端服务器返回的响应头中的Location和Refresh
}
}
负载均衡
负载平衡:在多个操作单元上执行负载平衡,以提高服务可用性和响应速度。
1.没有负载平衡的Web架构如下所示:
用户直接连接到服务器。此时,如果服务器挂起,则整个网站都挂起。
2.负载均衡的Web架构
用户访问负载均衡服务器,而不是直接访问后端服务器,负载均衡服务器由负载均衡服务器再次转发到后端服务器。如果后端服务器此时挂起,则负载平衡服务器将删除它并将后续请求转发给好的服务器,这样网站的正常运行就不会受到影响。此时我们还需要考虑负载均衡服务器是否会挂起,然后引入第二个负载均衡服务器来缓解它。
负载均衡配置
这可以通过在负载平衡服务器的Nginx中配置上游指令来完成。
不同负载均衡配置的特点如下:
一般轮询配置
服务器{
听80;
Server_name test.test;
地点/{
Proxy_passhttp://web_server; #反代理
}
}
#配置负载均衡服务器组
上游web_server {
服务器192.168.78.128;
服务器192.168.78.129;
}
加权轮询配置
#配置负载均衡服务器组
上游web_server {
服务器192.168.78.128权重=1;
服务器192.168.78.129权重=3;}
这里的权重之和是一个循环,这里是4次循环,然后每四个请求,三次将分配给服务器129,一次分配给128,但具体的三次不会顺序执行,并且它根据算法分布。我们还可以在负载均衡调度中设置每个Web服务器的状态。
上游web_server {
服务器192.168.78.128权重=1 max_fails=1 fail_timeout=2; #allow请求失败次数,在max_fail请求失败后暂停服务的时间
服务器192.168.78.200备份; #保留备份服务器
服务器192.168.78.33向下; #当前服务器不参与负载均衡
}
Ip_hash配置
上游web_server {
Ip_hash;
服务器192.168.78.120;
服务器192.168.78.123;
服务器192.168.78.33向下; #如果此服务器已关闭,请使用down表示当前服务器未参与负载平衡。
}
使用ip_hash时,不能使用重量和备份。
第三方模块(公平)
跳过安装公平模块的步骤.
配置公平负载均衡
服务器{
听80;
Server_name test.test;
地点/{
Proxy_passhttp://web_server
}
}
上游web_server {
服务器192.168.78.128;
服务器192.168.78.132;
公平; #用公平
}
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部