对Apache和Nginx进行了研究的总结
中间件
中间件是软件的一种,它是计算机组成的一个要素。
拥有中间件的作用,计算机可以进行复杂的处理。

计算机(硬件)中已经安装了操作系统。
操作系统承担着通用功能,但它并不仅仅用于运行应用程序(如Chrome和Excel),还需要中间件来进行操作系统和应用程序之间的桥梁作用。
中文翻译:中间件类别
在中文中可以这样表达:中间件有三种类型,分别是”Web服务器”、”应用服务器”和”数据库管理服务器”。这些被称为Web的三层结构。
网页服务器
我们通常在电脑或手机上浏览的内容,是从web服务器上获取的文字和图像的集合。
当我们请求“想要看这个页面”的时候,web服务器会回应给我们(响应)。
无论是每个人都能看到相同内容的“静态内容”,还是根据浏览者而变化的内容,例如购物网站的购物车,“动态内容”也会回应给我们(动态内容需要web服务器向应用服务器请求内容)。

而在Web服务器领域,代表性的产品有Apache和nginx。
Apache是什么?
一款可以免费(开源)使用的网络服务器软件。
官方名称为”Apache HTTP Server”。
由于1995年发布并至今仍在被使用,可见其作为一款受欢迎的网络服务器软件。
在技术变迁迅速的行业中,能够因此被广泛使用真是一件了不起的事情。
优点
可以免费使用。
正如我之前所说,因为可以免费使用,所以在成本方面有优势。
可在主要操作系统中使用
在主要的操作系统中(例如Mac、Windows和Linux),高度的通用性也是一个优点。
功能齐全
Apache是一款长期以来备受欢迎的软件,针对扩展功能,提供了许多模块供使用。
处理速度快且稳定。
由于处理速度快且稳定,网页的显示和内容的操作也很流畅。
缺点
当请求过多时,操作往往会变得缓慢。
Apache是使用多进程的,当请求量大时会同时启动多个进程。这样会导致负载处理变得更加繁重,消耗大量内存。最终导致运行变得缓慢(即C10K问题)。
即使服务器性能良好,但当客户端的同时连接数超过一定数量时,服务器会挂起并响应变慢。 “C”表示客户端,“10K”表示1万个。因此,并不是当客户端的同时连接数达到1万台时才会发生这种情况,但也不是这意味着发生的时候连接数恰好是1万台。
没有支持和保证
由于是开源的,所以在出现问题时需要用户解决。(不过,由于被许多人长期使用,通过在网络上搜索可能会找到解决方法,也可以自行进行故障排除)
Nginx是一种软件,它也被称为Engine X。
web服务器的份额与Apache一样普遍,许多企业如Adobe和CyberAgent也在使用(更详细地说,使用的是Nginx Plus)。
可以使用开源软件(OSS)的免费版,还有扩展了OSS功能的付费版(即前面提到的Nginx Plus)。
利益
如果选择OSS,可以免费使用。
有免费版本,可以试用一下。要了解与付费版本的功能比较,可以通过Nginx Plus来确认。
可以处理大量请求
尽管与Apache经常被比较,但Nginx在处理大量同时连接方面更强大。(能够解决C10K问题)
作为反向代理工作
在/etc/nginx/conf.d设置文件中写入代理设置,并将其用作反向代理。
缺点
对于消耗大量CPU资源的处理任务比较薄弱
不适合运行应用程序和处理视频等任务。
将Nginx作为独立的解决方案实现并不容易。
没有PHP等脚本语言处理的功能。
Apache和nginx的优缺点总结表
