Nginx介绍

Nginx是什么

Nginx ("engine x") 是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。它是由俄罗斯人 Igor Sysoev 开发的,最初被应用在俄罗斯的大型网站 www.rambler.ru 上。后来作者将源代码以类 BSD 许可的形式开源出来供全球使用。

Nginx 的官网 http://nginx.org/
Nginx 中文介绍见 http://tengine.taobao.org/nginx_docs/cn/

 

Nginx特性

Nginx基本特性

  • 可针对静态资源高速高并发访问及缓存。
  • 可使用反向代理加速,并且可进行数据缓存。
  • 具有简单负载均衡、节点健康检查和容错功能。
  • 支持远程 FastCGI 服务的缓存加速。
  • 支持 FastCGI、Uwsgi、SCGI、Memcached Servers 的加速和缓存。
  • 支持SSL、TLS、SNI。
  • 具有模块化的架构:过滤器包括 gzip 压缩、ranges 支持、chunked 响应、XSLT、SSI 及图像缩放等功能。在SSI 过滤中,一个包含多个 SSI 的页面,如果经由 FastCGI 或反向代理,可被并行处理。

Nginx Web 服务特性

  • 支持基于名字、端口及IP的多虚拟主机站点。
  • 支持 Keep-alive 和 pipelined 连接。
  • 可进行简单、方便、灵活的配置和管理。
  • 支持修改 Nginx 配置,并且在代码上线时,可平滑重启,不中断业务访问。
  • 可自定义访问日志格式,临时缓冲写日志操作,快速日志轮询及通过 rsyslog 处理日志。
  • 可利用信号控制 Nginx 进程。
  • 支持 3xx-5xx HTTP状态码重定向。
  • 支持 rewrite 模块,支持 URI 重写及正则表达式匹配。
  • 支持基于客户端 IP 地址和 HTTP 基本认证的访问控制。
  • 支持 PUT、DELETE、MKCOL、COPY 及 MOVE 等特殊的 HTTP 请求方法。
  • 支持 FLV 流和 MP4 流技术产品应用。
  • 支持 HTTP 响应速率限制。
  • 支持同一 IP 地址的并发连接或请求数限制。
  • 支持邮件服务代理。

Nginx应用方式

作为 Web 服务软件

Nginx 是一个支持高性能、高并发的 Web 服务软件,它具有很多优秀的特性,作为 Web 服务器,与 Apache 相比,Nginx 能够支持更多的并发连接访问,而且占用的资源却更少,效率更高,在功能上也强大了很多。

反向代理或负载均衡服务

在反向代理或负载均衡服务方面,Nginx 可以作为 Web 服务、PHP 等动态服务及 Memcached 缓存的代理服务器,它具有类似专业反向代理软件(如 Haproxy)的功能,同时也是一个优秀的邮件代理服务软件(最早开发这个产品的目的之一就是作为邮件代理服务),同时 Nginx 的代理在 Nginx 1.9.0 发布之后,还支持 TCP[四层] 的代理。

前端业务数据缓存服务

在 Web 缓存服务方面, Nginx 可通过自身的 proxy_cache 模块实现类 Squid 等专业缓存软件的功能。

总结:Nginx的这三大功能中, Web服务、反向代理或负载均衡服务是国内使用 Nginx 的主要场景。

 

选择正确的WEB服务器

虽然国内很多人都在使用 Nginx ,但是 Apache、Lighttpd 这两个 Web 服务器同样非常强大且使用,尤其 Apache ,到目前为止仍是全球使用最广泛的 Web 服务软件。

在实际工作中,我们需要根据业务需求来选择合适的业务服务软件,建议如下:

  • 静态业务:若是高并发场景,尽量采用 Nginx 或 Lighttpd ,首选 Nginx。
  • 动态业务:理论上采用 Nginx 和 Apache 均可,建议选择 Nginx,为了避免相同业务服务软件多样化,增加额外维护成本。动态业务可以由 Nginx 兼做前端代理,再根据页面元素的类型或目录,转发到后端相应的服务器进行处理。
  • 既有静态又有动态业务:采用 Nginx。

 

posted @ 2020-10-22 14:13  IQ-low  阅读(34)  评论(0编辑  收藏  举报