一、什么是nginx

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器,同时也是一个IMAP、POP3、SMTP邮件代理服务器。由俄罗斯的程序设计师Igor Sysoev采用C语言开发的,官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗非常低,运行也非常稳定。它也是一个跨平台服务器,可以运行在Linux、Windows、FreeBSD、Solaris、AIX、Mac OS等操作系统上。与Nginx同类型的Web服务器还有Apache、Lighttpd、Tengine(阿里巴巴团队研发)。nginx的并发处理能力在同类型web服务器中表现极好,在全世界范围内大量网站都使用了nginx,国内应用中也大量使用了nginx,例如淘宝、新浪等。nginx同时也是开源的,也有收费的商业版本,商业版本提供了性能优化、宕机等紧急问题处理等技术支持和服务。

二、Nginx特点

1.跨平台:可以在大多数类Unix系统上编译运行,而且也有Windows的移植版本。
2.配置简单:容易上手。
3.非阻塞、高并发连接:数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能支持5万并发连接,实际生产中能跑2~3万并发连接数(得益于Nginx采用了最新的epoll事件处理模型(消息队列)。
4.Nginx代理和后端Web服务器间无需长连接。
5.Nginx接收用户请求是异步的,即先将用户请求全部接收下来,再一次性发送到后端Web服务器,极大减轻后端Web服务器的压力。
6.发送响应报文时,是边接收来自后端Web服务器的数据,边发送给客户端。
7.网络依赖性低理论上只要能够ping通就可以实现负载均衡,而且可以有效区分内网、外网流量。
8.支持内置服务器检测。Nginx能够根据应用服务器处理页面返回的状态码、超时信息等检测服务器是否出现故障,并及时返回错误的请求重新提交到其它节点上。
9.采用Master/worker多进程工作模式。
​10.此外还有内存消耗小、成本低廉(比F5硬件负载均衡器廉价太多)、节省带宽、稳定性高等特点。

三、nginx应用场景

1、 http服务器。Nginx是一个http服务器可以独立提供http服务。可以做网页静态服务器。
2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群,这时可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高而宕机或者出现某台服务器闲置的情况,从而充分有效的利用资源。
4、Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx也可以作为反向代理进行负载均衡的实现。
总的来说,nginx主要应用于静态网站、负载均衡、静态代理、动静分离、虚拟主机等方面。