您的位置:首页 > 业内资讯 > 全栈工程师眼中的 HTTP

全栈工程师眼中的 HTTP

来源:developerWorks | 时间:2016-01-20 10:16:43 | 阅读:79 |  标签: developerWorks   | 分享到:


提高服务器的请求处理能力

在早期系统中(如Linux 2.4以前),进程是基本运作单位。在支持线程的系统(Linux2.6)中,线程才是基本的运作单位,而进程只是线程的容器。由于线程开销明显小于进程,而且部分资源还可以共享,因此效率较高。


Apache是市场份额最大的服务器,超过50%的网站运行在Apache上。Apache 通过模块化的设计来适应各种环境,其中一个模块叫做多处理模块(MPM),专门用来处理多请求的情况。Apache安装在不同系统上的时候会调用不同的默认MPM,我们不用关心具体的细节,只需要了解Unix上默认的MPM是prefork。为了优化,我们可以改成worker模式。


prefork和worker模式的最大区别就是,prefork的一个进程维持一个连接,而worker的一个线程维持一个连接。所以prefork更稳定但内存消耗也更大,worker没有那么稳定,因为很多连接的线程共享一个进程,当一个线程崩溃的时候,整个进程和所有线程一起死掉。但是worker的内存使用要比prefork低得多,所以很适合用在高HTTP请求的服务器上。


近年来Nginx越来越受到市场的青睐。在高连接并发的情况下,Nginx是Apache服务器不错的替代品或者补充:一方面是Nginx更加轻量级,占用更少的资源和内存;另一方面是Nginx 处理请求是异步非阻塞的,而Apache 则是阻塞型的,在高并发下Nginx 能保持低资源、低消耗和高性能。


由于Apache和Nginx各有所长,所以经常的搭配是Nginx处理前端并发,Apache处理后台请求。


值得一提的是,新秀Node.js也是采用基于事件的异步非阻塞方式处理请求,所以在处理高并发请求上有天然的优势。


DDoS攻击

DDoS是Distributed Denial of Service的缩写,DDoS攻击翻译成中文就是“分布式拒绝服务”攻击。


简单来说,就是黑客入侵并控制了大量用户的计算机(俗称“肉鸡”),然后在这些计算机上安装了DDoS攻击软件。我们知道浏览器作为一种“善意”的客户端,限制了HTTP并发连接数。但是DDoS就没有这样的道德准则,每一个DDoS攻击客户端都可以自由设置TCP/IP并发连接数,并且连接上服务器之后,它不会马上断开连接,而是保持这个连接一段时间,直到同时连接的数量大于最大连接数,才断开之前的连接。

小编推荐阅读

好特网发布此文仅为传递信息,不代表好特网认同期限观点或证实其描述。

相关视频攻略

更多

扫二维码进入好特网手机版本!

扫二维码进入好特网微信公众号!

本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件admin@haote.com

湘ICP备2022002427号-10 湘公网安备:43070202000427号© 2013~2024 haote.com 好特网