Nginx - 介绍

Ngnix 的功能

Nginx 同 Apache、Tomcat 一样,是一种服务器软件。它是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。因此,使用 Ngnix 可以搭建网站,也可以实现负载均衡的功能,还可以作为邮件代理服务器来接受和发送邮件。Ngnix 1.9.0 以后的版本还可以作为通用的 TCP/UDP 代理服务器,也可以提供一定的缓存服务功能。

可做 Web 服务器

Nginx 还是 - 个高性能的 HTP Web 服务器(Web 服务器还有 Apache、IIS 等), 它包含了基本的 HTTP 功能和拓展功能,可以先通过动态 / 静态内容分离, 而后为静态内容(HTML/CSS/JavaScript/Picture...)提供 HTTP 访问功能。而动态内容可以整合代理模块,代理给上游服务器,以支持对外部程序的直接调用或者解析,如 FastCGI 支持 PHP。

可做反向代理服务器

正向代理的过程隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求,某些科学上网工具扮演的就是典型的正向代理角色。用浏览器访问 http://www.google.com 时,被残忍的 block,于是你可以在国外搭建一台代理服务器,让代理帮浏览器去请求 http://www.google.com,代理把请求返回的相应结构再返回给浏览器。

而反向代理隐藏了真实的服务端,当我们请求 http://www.baidu.com 的时候,就像拨打 10086 一样,背后可能有成千上万台服务器为我们服务,但具体是哪一台,你不知道,也不需要知道,你只需要知道反向代理服务器是谁就好了,http://www.baidu.com 就是我们的反向代理服务器,反向代理服务器会帮我们把请求转发到真实的服务器那里去。Nginx 就是性能非常好的反向代理服务器,用来做负载均衡。

可做邮件代理服务器

Ngnix 可部署成邮件代理服务器,最早开发 Nginx 的目的之一就是将其作为邮件代理服务器。

Ngnix 的优势

Nginx 有着高并发、性能好和占用内存少等特点,其安装简单,配置文件简洁,启动容易,能长时间不间断运行,还能在不间断服务的情况下升级软件版本,而且成本低。

高并发、性能好、占用内存少且稳定

作为 Web 服务器,相比 Apache,Nginx 占用内存更少,支持的并发连接更多,使用效率更高,而且 Nginx 比 Apache 更轻量,性能更好。

功能强大

Nginx 提供了大量功能模块,支持诸多特性,应用场景也多,可做 Web 服务器、反向代理服务器,也可做邮件服务器等。

拓展性高

Nginx 的模块化设计极具拓展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成的。因此,当对某一个模块进行缺陷修复或升级时,可以专注于模块自身,而不会影响其他模块。

这种低耦合度的设计,使得 Nginx 具有数量庞大的第三方模块。当然,则和谐公开的第三方模块也如同 Nginx 官方发布的模块一样易用。

其他优点

  • 跨平台
  • 占用内存小
  • 配置、操作简单
  • 网络依赖性低
  • 支持内置服务器检测

参考资料

  • [1] 机械工业出版社 《深入理解 Nginx:模块开发与架构解析 第二版》
  • [2] 中国工信出版集团 《直播系统开发 基于 Nginx 与 Nginx-rtmp-module》