Nginx 简介
Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
Nginx 是一款轻量级的 Web 服务器 / 反向代理服务器以及电子邮件代理服务器,并在一个 BSD-like 协定下发行。由俄罗斯的程序设计师 lgor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler 应用。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力的确在同类型的网页服务器中体现较好。
Nginx 相较于 Apache\lighttpd 具备占有内存少,稳定性低等劣势,并且依附并发能力强,丰盛的模块库以及敌对灵便的配置而闻名。在 Linux 操作系统下,nginx 应用 epoll 事件模型, 得益于此,nginx 在 Linux 操作系统下效率相当高。同时 Nginx 在 OpenBSD 或 FreeBSD 操作系统上采纳相似于 Epoll 的高效事件模型 kqueue。
代理服务器
个别是指局域网外部的机器通过代理服务器发送申请到互联网上的服务器,代理服务器个别作用在客户端。
<!– More –>
反向代理
客户端(用户 A)向反向代理的命名空间(name-space)中的内容发送一般申请,接着反向代理将判断向何处(原始服务器)转交申请,并将取得的内容返回给客户端。而客户端始终工作它拜访的事原始服务器 B 而不是服务器 Z。因为防火墙作用,只容许服务器 Z 进出,防火墙和反向代理独特作用爱护了院子资源服务器 B。
用处:将防火墙前面的服务器提供给 Internet 用户拜访。反向代理还能够为后端的多台服务器提供负载平衡或为后端较慢的服务器提供缓冲服务。
正向代理
正向代理是一个位于客户端 A 和原始服务器(服务器 B)之间的服务器(代理服务器 Z),为了从原始服务器获得内容,用户 A 向代理服务器 Z 发送一个申请并指定指标(服务器 B),而后代理服务器 Z 向服务器 B 转交申请并将取得的内容返回给客户端。客户端必须要进行一些特地的设置能力应用正向代理。
用处:在防火墙内的局域网客户端提供拜访 Internet 的路径。还能够应用缓冲个性缩小网络使用率。
Nginx VS Apache
相同点:
- 都是 HTTP 服务器软件
- 性能上都采纳模块化结构设计
- 都反对通用的语言接口,如 PHP、Perl、Python 等
- 反对正向、反向代理、虚拟主机、URL 重写、压缩传输、SSL 加密传输
不同点:
- Apache 处理速度很慢,占用很多内存资源
- 性能上,Apache 所有模块反对动动态编译,Nginx 模块都是动态编译的
- 对 Fcgi 的反对:Apache 反对的很不好,Nginx 反对十分好
- 解决连贯形式:Nginx 反对 epoll,Apache 不反对
- 空间应用上:Nginx 安装包仅几百 K
Nginx 劣势
- 作为 Web 服务器,Nginx 解决动态文件、索引文件,主动索引的效率十分高
- 作为代理服务器,Nginx 能够实现无缓存的反向代理减速,进步网站运行速度
- 作为负载平衡服务器,Nginx 既能够在外部间接反对 Rails 和 PHP,也能够反对 HTTP 代理服务器对外进行服务,同时还反对简略的容错和利用算法进行负载平衡
- 在性能方面,Nginx 是专门为性能优化而开发的,实现上十分重视效率。它采纳内核 Poll 模型,能够反对更多的并发连贯,最大能够反对对 5 万个并发连接数的响应,而且只占用很低的内存资源
- 在稳定性方面,Nginx 采取了分阶段资源分配技术,使得 CPU 与内存的占用率非常低。Nginx 官网示意,Nginx 放弃 1 万个没有流动的连贯,而这些连贯只占用 2.5MB 内存,因而,相似 DOS 这样的攻打对 Nginx 来说基本上是没有任何作用的
- 在高可用性方面,Nginx 反对热部署,启动速度特地迅速,因而能够在不间断服务的状况下,对软件版本或者配置进行降级,即便运行数月也无需重新启动,简直能够做到 7 ×24 小时不间断地运行
Nginx 具备很高的稳定性;反对热部署;代码品质十分高,代码很标准,手法成熟,模块扩大也很容易;采纳了一些 os 提供的最新个性如对 sendfile(Linux2.2+),accept-filter(FreeBSD4.1+),TCP_DEFER_ACCEPT(Linux 2.4+) 的反对,从而大大提高了性能。
实际记录
目标:
为了通过 www.taoweidong.com 域名拜访在阿里云服务器上的 9000 端口搭建的集体博客
过程
装置 nginx 之后进行配置,应用 nginx 的代理性能
原理剖析:
这个 nginx 用来代理本地的 9000 端口 nginx 监听 80 端口 当客户应用浏览器 http://www.taoweidong.com 拜访时会被 80 端口捕捉到,而后 nginx 会去拜访 > 本地的 9000 端口,返回集体博客网页信息。
后果
本文由博客一文多发平台 OpenWrite 公布!