windows下nginx安装、配置与使用
目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx技术在国内日趋火热,越来越多的网站开始部署Nginx。
相比apeach、iis,nginx以轻量级、高性能、稳定、配置简单、资源占用少等优势广受欢迎。
1)下载地址:
http://nginx.org
2)启动
解压至c:\nginx,运行nginx.exe(即nginx-cconf\nginx.conf),默认使用80端口,日志见文件夹C:\nginx\logs
3)使用
http://localhost
4)关闭
nginx-sstop或taskkill/F/IMnginx.exe>nul
5)常用配置
C:\nginx\conf\nginx.conf,使用自己定义的conf文件如my.conf,命令为nginx-cconf\my.conf
常用配置如下:
Nginx.conf代码
http{
server{
#1.侦听80端口
listen80;
location/{
#2.默认主页目录在nginx安装目录的html子目录。
roothtml;
indexindex.htmlindex.htm;
#3.没有索引页时,罗列文件和子目录
autoindexon;
autoindex_exact_sizeon;
autoindex_localtimeon;
}
#4.指定虚拟目录
location/tshirt{
aliasD:\programs\Apache2\htdocs\tshirt;
indexindex.htmlindex.htm;
}
}
#5.虚拟主机www.emb.info配置
server{
listen80;
server_namewww.emb.info;
access_logemb.info/logs/access.log;
location/{
indexindex.html;
rootemb.info/htdocs;
}
}
}
运行nginx-V可以查看该Win32平台编译版支持哪些模块。我这里的结果为:
Log代码
nginxversion:nginx/0.7.65 TLSSNIsupportenabled configurearguments: --builddir=objs.msvc8 --crossbuild=win32 --with-debug--prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs.msvc8/lib/pcre-7.9 --with-openssl=objs.msvc8/lib/openssl-0.9.8k --with-openssl-opt=enable-tlsext --with-zlib=objs.msvc8/lib/zlib-1.2.3 --with-select_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_stub_status_module --with-http_flv_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-mail --with-mail_ssl_module --with-ipv6
显然,最经常用的memcache,rewrite模块都没在其中,因此该win32编译版本仅能供基本开发测试使用,对于产品平台,应该重新编译自己想要的win32版本,或者在linux下使用更方便。
6)查看nginx进程
tasklist/fi"imagenameeqnginx.exe",如下显示:
映像名称 PID会话名 会话# 内存使用
========================================================================
nginx.exe 8944Console 1 5,128K
nginx.exe 6712Console 1 5,556K
7)nginx常用命令
nginx-sstop强制关闭
nginx-squit安全关闭
nginx-sreload改变配置文件的时候,重启nginx工作进程,来时配置文件生效
nginx-sreopen打开日志文件
8)其它
可以通过配置文件开启多个nginx工作进程,但同时只有其中一个nginx工作进程在工作,其他的阻塞等待。
一个nginx工作进程最多同时可以处理1024个连接。
nginx中需要共享内存的cache或者模块无法在windows下正常使用。
不过,nginx官方正在改进,将来nginx会以服务的方式运行,使用I/Ocompletionports代替select方法,使多个工作进程能并发工作。
要使用nginx配合php-cgi使用,需要修改环境变量,否则,php-cgi运行一定次数就推出,需要重启,设置PHP_FCGI_MAX_REQUESTS这个变量为0即可。
以上在win7上通过。
8)nginx以windows服务形式启动
1.下载微软两个工具:
instsrv.exesrvay.exe
2.执行命令:
instsrvNginxc:/nginx/srvany.exe
3.配置Nginx的运行参数
可以直接将配置导入到注册表
WindowsRegistryEditorVersion5.00
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NGINX/Parameters]
"Application"="C://nginx//nginx.exe"
"AppParameters"=""
"AppDirectory"="C://nginx//"
注意:windows下的Nginx内置的module很多没有,用Nginx-V命令查看。
9)Nginx下部署mono+asp.net环境
1、从MonoforWindows中提取FastCGI-Mono-Server
2、Nginxnginx.conf的配置:
worker_processes 1; error_log logs/error-debug.loginfo;
events{ worker_connections 1024; }
http{ include mime.types; default_type text/plain; sendfile on;
keepalive_timeout 65; index index.htmlindex.htm;
server{ listen 80; server_nameyourdomain.com; indexindex.aspxdefault.aspx;
location/{ root D:\www/yourwebapp;
fastcgi_pass 127.0.0.1:8000; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; include fastcgi_params; } } }