Nginx默认反向后的端口为80,因此存在被代理后的端口为80的问题,这就导致访问出错。主要原因在Nginx的配置文件的host配置时没有设置响应的端口。
如上,Host配置只有host,没有对应的port,这就导致在被代理的地方取得错误的端口。本文以java为例:
这时,取得的port为80,虽然nginx监听的端口为9090。这个错误让我很郁闷。于是,修改nginx的配置文件,将Host后面的改为 $host:$server_port即可,配置文件如下:
之前看过阿里巴巴 陶辉写的《深入理解Nginx:模块开发与架构解析》,里面也提到了这一点,今天突然想到了,就回顾记录一下,有可能说的不全。
一般来说公网延迟高,客户端与nginx之间的请求连接走公网,nginx先把这些请求缓存住,等这些请求数据全部完成之后nginx再向内网服务器请求,降低公网网络延迟成本,同时也降低一个连接占用服务端程序的时间。
原因:因为tcp不一定一次就能把全部数据传输完毕,所以一个连接可能需要等待很久才能把所有需要的数据都传输完毕,而这样的空闲连接如果都直接连接到服务器上的话,会加重服务器负担,而nginx在这方面做了很大的优化,可以承载更多的连接,空闲连接也不会占据太多内存,所以nginx作为反向代理能降低上游服务器的负载。
版权声明:本文为博主原创文章,未经博主允许不得转载。 /qq_/article/details/
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。