nginx windows usage(翻译)
英文地址:http://nginx.org/en/docs/windows.html
译者博客:http://blog.csdn.net/kimsoft
2010/12/23
nginx/Windows版使用原生Win32API(非Cygwin模拟层)。目前只有select方法被用作通知方法,因此你不应对其高性能和可扩展性要求太高。正因为如此和一些已知的问题,nginx/Windows版被认为是beta版。和Unix版相比,除了XSLT过滤器,图片过滤器,GeoIP模块和内置的Perl语言之外,拥有几乎全部的功能。
要安装nginx/Windows版,你应该下载最新的0.9.3开发版压缩包,由于这个开发分支包含了所有已经知问题的修复,特别是和Windows相关的问题。解压缩这个文件,转到nginx-0.9.3目录,运行nginx。对于C盘作为根目录,这儿有个例子:
cd c:/
unzipnginx-0.9.3.zip
cdnginx-0.9.3
start nginx
你可以运行“tasklist”命令行工具来查看nginx进程:
C:/nginx-0.9.3>tasklist /fi "imagename eq nginx.exe"
Image Name PID Session Name Session# Mem Usage
=============== ======== ============== ==========
nginx.exe 652 Console 0 2780 K
nginx.exe 1332 Console 0 3112 K
其中一个进程是主进程,另外一个是工作进程。如果nginx没有启动,你应该查看“logs/error.log”来查找原因。如果这个日志文件没有被创建,错误原因应该已经在Windows 事件日志中被报告。如果你看到一个错误页面而不是期望的页面,你也应该要到“logs/error.log”文件中寻找错误原因。
nginx/Windows版在配置中使用被运行的前缀目录作为相对目录,在上面的例子中,前缀目录是“C:/nginx-0.9.3/”。配置文件中的路径应该被设置成使用斜杠的Unix样式:
access_log logs/site.log;
root C:/web/html;
nginx/Windows版作为一个标准的控制台程序运行,而不是服务,可以使用下列的命令管理:
nginx -s stop 快速退出
nginx -squit 优雅退出
nginx -sreload 改变配置,启动一个新的工作进程,优雅退出老的进程
nginx -sreopen 重新打开日志文件
已知的问题
l 尽管可以运行多个工作进程,但只有一个真正起作用。
l 一个工作进程处理不超过1024个并发连接。
l 缓存和其它需要共享内存支持的模块在Windows Vista及其以后的版本中不起作用,因为在这些Windows版本中的地址空间布局随机被启用。
以后可能的增强
l 作为服务运行。
l 使用I/O完成端口作为通知方法。
l 使用多工作线程取代单工作进程。
译者补充:
在nginx在Unix Like的系统中优势很大,建议生产环境部署在Unix Like系统上
在Windows下劣势,上文已经描述,此处总结:
n select模型效率不高(Linux下可用epoll等高效模型)
n 1个工作进程的限制,Unix Like系统中可启用多个
n 并发连接限制在1024 以下
n 缓存和共享内存的问题
n 缺失的模块和功能(译文第一段,XSLT过滤器,图片过滤器,GeoIP模块和内置的Perl语言)
n 不能作为服务运行(网上已经有解决办法,但还是不方便)
n 日志分割(UnixLike系统中的logrotate很容易解决),Windows下可以下方法:
u 写个批处理,网上已有,但要停止nginx,用计划任务运行
u 批处理不好写,可用python写个小脚本,用计划任务运行
u 配置access_logoff关掉日志
Windows命令行使用参考:
nginx:nginx version: nginx/0.9.3
nginx:Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h :this help(注意和普通的dos命令帮助的/?是不一样的,Unix风格)
-v :show version and exit
-V :show version and configure options then exit
-t :test configuration and exit(测试配置文件,好用)
-q :suppress non-error messages during configuration testing
-s signal :send signal to a master process: stop, quit, reopen, reload(上面译文已述)
-p prefix :set prefix path (default: NONE)
-c filename :set configuration file (default: conf/nginx.conf)(改变配置文件,感觉用处不大)
-g directives : set global directives out of configuration file
nginx相关资源:
官方网站: http://nginx.org/
中文Wiki: http://wiki.nginx.org/Chs
张晏的blog: http://blog.s135.com/post/366/
文档下载地址:http://download.csdn.net/source/2933573
电信直接下载:http://dl5.csdn.net/fd.php?i=784829335739562&s=f206d056ba5cef299ce41f0cb94938f6
网通直接下载:http://dl5.csdn.net/fd.php?i=566429335739788&s=7c96dfd6c5f559f1bb12a162c9d6ac69