Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:在高连接并发的情况下,Nginx是Apache服务器不错的替代品。能够支持高达 50,000 个并发连接数的响应,Nginx选择了 epoll and kqueue作为开发模型。Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。Nginx 是一个安装非常的简单,配置文件非常简洁(还能够支持perl语法),Bugs非常少的服务器:Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
nginx的Windows版本使用原生Win32 API(非Cygwin模拟层)。当前nginx/Windows只使用select作为通知方法,所以不要期待它有很高的性能和扩展性。鉴于这点和一些已知问题,nginx/Windows目前还处于beta阶段。nginx/Windows和Unix版本相比,功能几乎已经齐全,除了XSLT过滤器、图像过滤器、GeoIP模块和嵌入Perl语言支持以外。
安装nginx/Windows,需要下载最新的1.5.4开发版本,因为开发分支上包含了所有已知的问题修复,尤其是针对Windows版本的问题修复。解压缩下载得到的zip文件,进入nginx-1.5.4目录,运行nginx。下面给出一个在C盘根目录下安装的例子:
cd c:
unzip nginx-1.5.4.zip
cd nginx-1.5.4
start nginx
可以在命令行运行tasklist命令来查看nginx进程:
C:nginx-1.5.4>tasklist /fi "imagename eq nginx.exe"
Image Name PID Session Name Session# Mem Usage
=============== ======== ============== ========== ============
nginx.exe 652 Console 0 2 780 K
nginx.exe 1332 Console 0 3 112 K
其中一个是主进程,另一个是工作进程。如果nginx没有启动,请查看logserror.
iis7站长之家文件以寻找失败原因。如果日志文件不存在,那失败原因会记录在Windows事件日志中。如果某次请求没有展示预想的页面,而是展示了错误页面,也请查看logserror.log文件。
nginx/Windows使用工作目录作为前缀将配置文件中设置的相对目录补齐。就上面安装的例子而言,工作目录应该是C:nginx-1.5.4(工作目录基本上与运行文件所在的目录相同)。配置文件中的目录请使用“/”,而不是“”做目录分隔:
access_log logs/site.log;
root C:/web/html;
nginx/Windows作为标准控制台应用运行,而不是系统服务。可以用下面的命令控制:
nginx -s stop 快速退出
nginx -s quit 优雅退出
nginx -s reload 更换配置,启动新的工作进程,优雅的关闭以往的工作进程
nginx -s reopen 重新打开日志文件
已知问题:
虽然可以启动若干工作进程运行,实际上只有一个进程在处理请求所有请求。
一个工作进程只能处理不超过1024个并发连接。
缓存和其他需要共享内存支持的模块在Windows Vista及后续版本的操作系统中无法工作,因为在这些操作系统中,地址空间的布局是随机的。
日后可能加强的功能:
作为系统服务运行。
使用“I/O完成端口”作为事件模型。
使用单工作进程多线程的模型。