nginx反向代理为什么能降低上游服务器的负载。
一般来说公网延迟高,客户端与nginx之间的请求连接走公网,nginx先把这些请求缓存住,等这些请求数据全部完成之后nginx再向内网服务器请求,降低公网网络延迟成本,同时也降低一个连接占用服务端程序的时间。 (推荐学习:nginx教程)
原因:
因为tcp不一定一次就能把全部数据传输完毕,所以一个连接可能需要等待很久才能把所有需要的数据都传输完毕,而这样的空闲连接如果都直接连接到服务器上的话,会加重服务器负担,而nginx在这方面做了很大的优化,可以承载更多的连接,空闲连接也不会占据太多内存,所以nginx作为反向代理能降低上游服务器的负载。
反向代理:反向代理(ReverseProxy)是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,简单来说就是真实的服务器不能直接被外部网络访问,想要访问必须通过代理。
反向代理的作用
1、防止主服务器被恶意攻击
2、为负载均衡和动静分离提供实现支持
nginx应用之所以广泛,我认为这归功于它的灵活配置,一个nginx.conf文件解决大部分问题,不论是nginx创建虚拟服务器、nginx的反向代理服务器,还是nginx的负载均衡,几乎都在这个配置文件中进行。
服务器上只负责把nginx搭好,跑起来即可。而且它本身轻量级,不需要占用服务器太多资源就可以达到较好的效果,是一个非常值得推崇的服务器
以上是为什么要用Nginx反向代理的详细内容。更多信息请关注PHP中文网其他相关文章!