当前位置: 首页 > 科技观察

Nginx服务器大并发架构实战技巧1

时间:2023-03-14 14:53:08 科技观察

对于请求量大的高性能网站,如何支撑?大致分为两部分。一方面是尽量减少对服务器的请求,另一方面是提高服务器的相应能力。为了降低服务器的请求能力,我这里列举几个方面,供大家参考。1:对于开发人员,尽量能够合并css,合并多个背景图片,减少mysql查询等。2:对于运维人员,nginx的expires设置,使用浏览器缓存等,减少查询。3:使用第三方CDN响应请求,减轻自己服务器的压力。4:最后剩下的,绕不开的要求——服务器集群+负载均衡的支撑。因此,在第4步之后,就不要再考虑减少请求了。而是思考如何更好地应对高并发请求。所以这就是我们今天要关注的。对于Nginx,客户请求Nginx响应,如何响应无非就是读取mysql或者直接读取磁盘上的index.html等等。有两个方向,第一个是建立socket连接,第二个是打开文件。这涉及两个硬性限制。***,你能建立这么多socket连接吗?你的内存是否足够大,因为socket连接的建立需要内存来维护它们的信息。你打开文件,操作系统不允许你一次打开那么多文件。因为默认情况下,一个进程只能同时打开1024个文件。所以如果要建立高并发,高并发无非就是建立更多的socket连接,打开更多的文件。只有你能承受这两方面。当然对你的网卡也是有要求的,至少你的网卡能同时跑过这么多流量。知道了这两大方向之后,我们在排查问题的时候就需要从这两点出发。然后通过观察系统的dmesg和nginx的error.log逐步解决问题。其实在真实的生产环境中,凡是做东西出错的地方,都跟着错误轨迹一点一点摸索优化。没有固定的方式说按照做什么可以达到多少并发。以上就是搭建高并发Nginx服务器的大致思路和解决方案。在下一篇文章中,我会举个例子,用今天讲到的理论,从实际的角度,一步步讲解如何搭建大型并发服务器。