【nginx】关于nginx作为反向代理、网关的服务器资源压力

nginx作为反向代理,在资源充足的情况下,qps能达到多少?

要达到十万是不是要进行相关调优?

耗费的内存跟并发数有什么关系?

Nginx 反向代理为什么可以提高网站性能?

 

# ss -s

# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

# ps_mem -s | grep nginx | grep -v grep 

 

 

反向代理可以提高网站性能???这个单机环境下是没啥作用的。

在集群环境下,Nginx可以支持负载均衡,使网站获得更好的性能和稳定性。

Nginx的快速, 其实在于Linux上优秀网络模型epoll 的支持,而传统Select模型很低效。

 

仅仅「转发」请求到后端服务,nginx 也可以通过 LB 策略影响整站性能分布。

拿异步并发来说事就太扯了,nginx 在并发上的优化只是努力降低 LB 层的损耗而已。

不是反向代理提高了性能,反向代理到后端服务器(N台),通过轮询多台后端服务器来提高逻辑处理能力,达到提高系统性能的效果。

 

因为Nginx 反向代理能够实现IO和业务分离,其次是实现负载均衡,在java和php作为后台服务端,这类服务器的io处理能力有限,这时候可以通过Nginx获取完完整的request后再给服务器后端,同时也可以把response完整的通过Nginx中转,减少在io方面的不必要开支,提高并发量。

反向代理(Reverse Proxy)方式是指以代理服务器来接受客户端的连接请求,然后将请求转发给网络上的web服务器(可能是apache、nginx、tomcat、iis等),并将从web服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个服务器

 

对于后端是动态服务来说,比如Java和PHP。这类服务器(如JBoss和PHP-FPM)的IO处理能力往往不高。

Nginx有个好处是它会把Request在读取完整之前buffer住,这样交给后端的就是一个完整的HTTP请求,从而提高后端的效率,而不是断断续续的传递(互联网上连接速度一般比较慢)。同样,Nginx也可以把response给buffer住,同样也是减轻后端的压力。

 

参考 

 


Linux 监控tcp连接数及状态

https://www.cnblogs.com/augusite/p/11151751.html

 

 

Nginx 反向代理为什么可以提高网站性能?

https://www.zhihu.com/question/19761434

 

 

 

 

 

 

 

 

 

 

Guess you like

Origin blog.csdn.net/michaelwoshi/article/details/116860746