热门推荐
Nginx配置反向代理服务器(HTTP proxy module)
2024-10-31 21:55
前言:Nginx作为反向代理服务器时的特点

简而言之,Nginx与其他反向代理服务器(如Squid)相比,特点是

Nginx配置反向代理服务器(HTTP proxy module)

缺点 延长了HTTP请求的处理时间,且增加了Nginx本地的用于缓存的内存和磁盘空间
优点 降低了上游服务器(Tomcat、Apache)的负载(并发压力,尽量把压力放在Nginx服务器上。

原因

客户端与反向代理服务器之间的网络连接是公网,反向代理服务器与上游服务器之间的连接是内网(局域网)或者专线连接。
如果刚收到HTTP请求就立即与上游服务器建立连接,假如客户端上传1G的文件,则在此期间上游服务器要一直保持连接,这对上游服务器的并发处理能力提出了挑战。
而Nginx接收到完整的客户端文件后才与上游服务器建立连接,且内网的转发执行很快。

但是,当上游服务器一旦开始回复HTTP响应时,Nginx反向代理服务器会立刻把应答包转发给客户端。

TIPS

反向代理服务器(reverse proxy)必须能够处理大量的并发请求(高并发高负载能力)。

“负载均衡”指的是代理服务器向上游服务器集群(upstream)转发请求时,要选择一种转发策略,尽量把请求平均的分布到每一台上游服务器上。

Nginx的负载均衡策略分为 5 种

(1)RR(默认(顺序
(2)权重
(3)ip_hash(第三方
(4)fair(第三方
(5)url_hash(第三方

upstream块里面定义的是上游服务器集群,块中的server配置项指定一台上游服务器的名字,可以是IP地址端口、域名、Unix句柄。

“proxy_pass”是代理通行证的意思。

这种负载均衡的策略很重要:当有大量用户同时访问服务器时,用户初始接入的那台上游服务器(Tomcat)会缓存一些客户信息,如果之后同一个用户的HTTP请求被Nginx转发到集群中的任意一台上游服务器上去,那么每一个上游服务器都要缓存同一份用户信息,这会造成服务器的内存资源浪费且管理这些缓存信息会非常困难。

在这种场景下,我们希望 , 这就是 ip_hash 的作用。

ip_hash 的工作原理

首先根据客户端的IP地址计算出一个key,将key按照upstream集群里的上游服务器数量进行取模,然后以取模后的结果把请求转发到相应的上游服务器中。这样就确保了同一个客户端的请求只会转发到指定的上游服务器上。

注意

(1
(2)upstream配置块中如果有一台服务器不可用或不再使用,不能在upstream块中直接将其删除,而是要用 参数标识,以保证key取模后的结果不变,确保转发策略的一贯性,例如

,响应时间短的优先分配。

按访问服务器URL的Hash结果来分配请求到上游服务器,使每个URL定向到同一个上游服务器上去,上游服务器为缓存时比较有效。
与ip_hash的区别
ip_hash是按照客户端的IP地址计算Hash结果,使得每个客户端固定接入到一台上游服务器上;url_hash按照URL计算Hash结果,使访问同一个URL资源的不同客户端接入到同一台上游服务器上,这种方法当上游服务器为提供固定的资源的缓存时比较有效。
url_hash方法下同样不能在server后面接weight等关键字。

反向代理的基本配置项有以下几个

proxy_pass可以理解为“代理通行证”,此配置项将当前请求反向代理到URL参数指定的上游服务器上去,URL可以是IP地址端口号、主机名等。
例如下例中表示proxy_pass的URL是 http://backend

:upstream块中的上游服务器必须已经开启,否则转发到此服务器上最后会返回“502 Bad Gateway”

    以上就是本篇文章【Nginx配置反向代理服务器(HTTP proxy module)】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/4019.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多