对于高性能网站 ,请求量大,如何支撑?大体分为两个部分。一部分是尽量减少对服务器的请求,另一方面是提高服务器的相应能力。减少服务器的请求能力,我这里列举一下几个方面,大家可以参考。
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 服务器的大体思路和方案。在下一篇文章中,我将会拿一个实例,运用今天所讲到的理论,从实操的角度来说明一下如何一步一步的把一个大并发的服务器架构起来。
【51CTO.com原创稿件】2020年,受突如其来的新冠肺炎疫情影响,数字化智慧转型进...
【51CTO.com原创稿件】大多数CIO不喜欢听话的乙方。这是CIOIT经理精英汇社群在5...
如今选择美国服务器的用户越来越多,服务器供应商也是越来越多,美国机房数据中...
如今,企业开始意识到分析算法只与其所针对的数据一样好。以下是一些改进数据质...
近日,中国教育科研计算机网华中地区2018年学术论坛在河南驻马店黄淮学院举办。...
虽然新冠疫情还远未结束,但更大的麻烦可能会在不太遥远的将来突然出现。现在是I...
所谓特价美国服务器,字面意思就能很清楚的明白,做特价的美国服务器。一些服务...
目前数据中心网络广泛应用的Fabric架构中会应用大量的ECMP(Equal-Cost Multipath...
这是最常用的方式,Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时...
天下大势,合久必分,分久必合。纵观整个存储发展史,数据中心的存储方案也大致...