Nginx简介
常见的Web服务器产品#
目前市场上比较流行的Web服务器主要有Apache、Microsoft IIS、Sun、Nginx、Tomcat、Lighttpd等。
由上图可以看出Nginx的市场占有率越来越高。但是在介绍本篇文章的主角——Nginx之前,我们还是有必要来简单了解下其他几个产品。
Apache服务器(httpd)#
Apache服务器是Apache软件基金会下面的一款Web服务器,平时我们将这个服务器称为httpd。这款服务器和其他Web服务器比起来特性最全,并且运行速度快,性能相对稳定,而且扩展功能丰富。
Apache Web服务器是当今Web服务器市场中的领军产品,但在具体的使用过程中,它仍然在某些方面表现不足——比如性能方面。
IIS#
IIS,是Internet InformationServices的缩写。IIS不仅仅是一款Web服务器,同时还包含了Gopher Server(Web上一种信息查找系统)和FTP Server,并且可以用于HTTP Server、FTP Server、NNTP Server或者SMTP Server。我们通过IIS不仅仅可以发布网页,它还可以提供新闻服务、文件和应用程序服务、邮件服务等。
IIS的功能非常强大,但是缺点也显而易见——IIS和Window平台强绑定。
Tomcat服务器#
Tomcat也是Apache软件基金会下面的一款产品。其实Tomcat的“本职工作”是一个Servlet容器,只是附带了Web服务器的功能。因此Tomcat在处理静态HTML页面方面的能力不如Apache这些职业选手。
但是这并不影响他们成为“好基友”。在前后端分离的开发模式中经常使用Apache来处理静态页面,用Tomcat来配合处理动态请求。
Lighttpd服务器#
Lighttpd服务器来自德国的一个开源轻量级Web服务器软件,它在2004年左右开始取得了高速发展。
Lighttpd的急速发展得益于它专门针对高性能网站,提供了一套安全、快速、兼容性良好并且灵活的Web Server环境。同时,它具有非常低的内存开销、CPU占用率低以及模块丰富等特点,支持FastCGI、Output Compress(输出压缩)、URL重写等绝大多数Apache具有的重要功能,是Apache的绝好替代者。
作为轻量级服务器,Lighttpd与Apache等大型Web服务器软件相比,其在功能上存在不足和部分缺陷,比如Proxy功能不完善、对编码支持不完善等缺点。
Nignx是什么#
Nginx是一款免费开源的高性能HTTP服务器及反向代理服务器(ReverseProxy)产品,同时,它还可以提供IMAP/POP3代理服务等功能。在实际的使用中,Nginx还可以提供更多更丰富的功能,我们将在下一节介绍它的功能。
Nginx是俄罗斯人Igor Sysoev(伊戈尔·塞索耶夫)编写的一款高性能的HTTP和反向代理服务器。Nginx能够选择高效的epoll(Linux 2.6内核)、kqueue(FreeBSD)、eventport(Solaris10)作为网络I/O模型,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,它能够支持高达50000个并发连接数的响应,而内存、CPU等系统资源消耗却非常低,运行非常稳定。
Nginx的官方网站为http://www.nginx.org
Nginx不断成长和发展,以其稳定的性能、丰富的功能集、支持高并发连接、低系统资源的消耗而逐渐被全球Web服务器使用者认可。
Nignx主要功能#
Nginx服务器以其功能丰富著称于世。它既可以作为HTTP服务器,也可以作为反向代理服务器或者邮件服务器;能够快速响应静态页面(HTML)的请求;支持FastCGI、SSL、Virtual Host、URL Rewrite、HTTP Basic Auth、Gzip等大量使用功能;并且支持更多的第三方功能模块的扩展。
可以将Nginx的功能分为三个部分:基本HTTP服务、高级HTTP服务和邮件服务等三大类。
1. 基础的Http服务
在Nginx提供的基本HTTP服务中,主要包含以下功能特性:
- 处理静态文件(如HTML静态网页及请求);处理索引文件以及支持自动索引。(常用功能)
- 打开并自行管理文件描述符缓存。
- 提供反向代理服务,并且可以使用缓存加速反向代理,同时完成简单负载均衡及容错。(常用功能)
- 提供远程FastCGI服务的缓存机制,加速访问,同时完成简单的负载均衡以及容错。
- 使用Nginx的模块化特性提供过滤器功能。Nginx基本过滤器包括gzip压缩、ranges支持、chunked响应、XSLT、SSI以及图像缩放等。其中,针对包含多个SSI的页面,经由FastCGI或反向代理,SSI过滤器可以并行处理。
- 支持HTTP下的安全套接层安全协议SSL。
2. 高级的Http服务
在Nginx提供的高级HTTP服务中,主要包含以下功能特性:
- 支持基于名字和IP的虚拟主机设置;
- 支持HTTP/1.0中的KEEP-Alive模式和管线(PipeLined)模型连接。
- 支持重新加载配置以及在线升级时,无须中断正在处理的请求。
- 自定义访问日志格式、带缓存的日志写操作以及快速日志轮转。后面章节会讨论其具体应用。
- 提供3xx~5xx错误代码重定向功能。后面章节会讨论其具体应用。
- 支持重写(Rewrite)模块扩展。后面章节会讨论其具体应用。
- 支持HTTP DAV模块,从而为Http WebDAV提供PUT、DELETE、MKCOL、COPY以及MOVE方法。
- 支持FLV流和MP4流传输。
- 支持网络监控,包括基于客户端IP地址和HTTP基本认证机制的访问控制、速度限制、来自同一地址的同时连接数或请求数限制等。
- 支持嵌入Perl语言。
3. 邮件代理服务
Nginx提供邮件代理服务也是其基本开发需求之一,主要包含以下功能特性:
- 支持使用外部HTTP认证服务器重定向用户到IMAP/POP3后端,并支持IMAP认证方式(LOGIN、AUTH LOGIN/PLAIN/CRAM-MD5)和POP3认证方式(USER/PASS、APOP、AUTH LOGIN/PLAIN/CRAM-MD5)。
- 支持使用外部HTTP认证服务器认证用户后重定向连接到内部SMTP后端,并支持SMTP认证方式(AUTH LOGIN/PLAIN/CRAM-MD5)。
- 支持邮件代理服务下的安全套接层安全协议SSL。
- 支持纯文本通信协议的扩展协议STARTTLS。
作者:程序员自由之路
出处:https://www.cnblogs.com/54chensongxia/p/12905863.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?