Nginx 办理了办事器的C10K(就是在一秒以内毗连客户真个数量为10k即1万)成绩。 Nginx的计划不像传统的办事器那样利用线程处置哀求,而是一个加倍初级的机制—事务驱念头制,是一种异步事务驱动布局。
固然今朝Nginx的份额在市场上只占很少局部,可是其高功能和低损耗内存的布局,使得其愈来愈广泛,典范的一个使用就是咱们可使用Nginx作为反向代办举行网站的负载平衡器。比方:Wordpress、GitHub等出名的网站都利用到了Nginx。
Nginx的特性
跨平台:能够在大多半Unix like 系统编译运转。并且也有Win的移植版本。
设置异样复杂:十分的复杂,易上手。
非堵塞、高并发毗连:数据复制时,磁盘I/O的第一阶段长短堵塞的。官方测试能撑持5万并发毗连,实践临盆中能跑2~3万并发毗连数(得益于Nginx接纳了最新的epoll事务处置模子(动静行列)。
Nginx代办和后端Web办事器间无需长毗连;
Nginx吸收用户哀求是异步的,即先将用户哀求全体吸收上去,再一次性发送到后端Web办事器,极大加重后端Web办事器的压力。
发送呼应报文时,是边吸收来自后端Web办事器的数据,边发送给客户端。
收集依附性低,实践上只有可以ping通就能够实行负载平衡,并且能够有效分辨内网、外网流量。
撑持内置办事器检测。Nginx可以依据使用办事器处置页面前往的形态码、超时信息等检测办事器是否呈现妨碍,并实时前往毛病的哀求从头提交到别的节点上。
接纳Master/worker多历程事情形式
别的另有内存损耗小、本钱昂贵(比F5硬件负载平衡器低价太多)、俭省带宽、不乱性初等特性。
Nginx的基础功效
Nginx的功效包含基础HTTP功效和扩大功效。和Apache办事器一样,Nginx办事器为了供应更多的功效而且可以有效地扩大这些功效。每个模块都供应了一个功效,通过编译这些功效模块来完成功效的扩大。
1、基础HTTP功效
(a)供应静态文件和index文件,处置静态文件,索引文件以及主动索引,翻开文件形貌符缓存;
(b)利用缓存减速反向代办,反向代办减速(无缓存),复杂的负载平衡和容错;
(c)利用缓存机制减速近程FastCGI,复杂的负载平衡和容错;
(d)模块化的布局。过滤器包含gzipping,byte ranges,chunked responses,以及 SSI-filter。在SSI过滤器中,到统一个 proxy 大概 FastCGI 的多个子哀求并发处置;
(e)撑持SSL 和 TLS SNI 撑持;
(f)IMAP/POP3代办功效;
(g)利用内部 HTTP 认证办事重视定向用户到 IMAP/POP3 后端;
(h)利用内部 HTTP 认证办事器认证用户后毗连重定向到外部的 SMTP 后端;
2、其余HTTP功效
(a)基于称号和基于IP的假造办事器;
(b)撑持Keep-alive和管道毗连;
(c)天真的设置和从头设置、在线晋级的时分不必中止客户会见的处置;
(d)会见日记的格局,缓存日记写入和倏地日记轮循;
(e)3xx-5xx毛病代码重定向;
(f)速率制约。
Nginx的基础模块
Nginx的中心模块包含内核模块和事务驱动模块,即:CoreModule和EventsModule;别的另有第三方模块 HTTP内核模块,HttpCoreModule,它是Nginx办事器的中心模块。
CoreModule和EventsModule模块的设置相对HttpCoreModule会少一些,可是它们的设置将会影响系统的功能,而非功效上的差别。
1、CoreModule用于把持Nginx办事器的基础功效;
2、EventsModule用于把持Nginx怎样处置毗连。该模块的指令的一些参数会对使用系统的功能发生主要的影响;
3、HttpCoreModule供应HTTP会见Nginx办事器,该模块是不能短少的。
Nginx设置装置的情况
1、yum -y install gcc* epel-release curl curl-devel mcrypt openssl openssl-devel gd gd-devel freetype freetype-devel zlib zlib-devel zip libmcrypt-devel libmcrypt pcre-devel libevent-devel ncurses-devel libxml2* mcrypt* libmcrypt* cmake gcc* lrzsz ntp telnet
2、创立用户
useradd -s /sbin/nologin web
3、创立nginx的装置目次(此步调能够省略)
mkdir -p /usr/local/nginx
chown -r web:web /usr/local/nginx
4、拷贝下载好的软件包到/usr/src/目次
5、解压Nginx装置包
tar -zxf /usr/src/tengine-2.1.2.tar.gz
cd /usr/local/tengine-2.1.2/
6、举行检测
./configure --prefix=/usr/local/nginx --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre
7、编译
make
8、装置
make install
9、启动nginx /usr/local/nginx/sbin/nginx