目前國(guó)內(nèi)各大門(mén)戶網(wǎng)站已經(jīng)部署了nginx,如新浪、網(wǎng)易、騰訊等;國(guó)內(nèi)幾個(gè)重要的視頻分享網(wǎng)站也部署了nginx,如六房間、酷6等。新近發(fā)現(xiàn)nginx 技術(shù)在國(guó)內(nèi)日趨火熱,越來(lái)越多的網(wǎng)站開(kāi)始部署nginx。
相比apeach、iis,nginx以輕量級(jí)、高性能、穩(wěn)定、配置簡(jiǎn)單、資源占用少等優(yōu)勢(shì)廣受歡迎。
1)下載地址:
http://nginx.org
2)啟動(dòng)
解壓至c:\nginx,運(yùn)行nginx.exe(即nginx -c conf\nginx.conf),默認(rèn)使用80端口,日志見(jiàn)文件夾c:\nginx\logs
3)使用
http://localhost
4)關(guān)閉
nginx -s stop 或taskkill /f /im nginx.exe > nul
5)常用配置
c:\nginx\conf\nginx.conf,使用自己定義的conf文件如my.conf,命令為nginx -c conf\my.conf
常用配置如下:
代碼如下:
nginx.conf代碼
http {
server {
#1.偵聽(tīng)80端口
listen 80;
location / {
# 2. 默認(rèn)主頁(yè)目錄在nginx安裝目錄的html子目錄。
root html;
index index.html index.htm;
# 3. 沒(méi)有索引頁(yè)時(shí),羅列文件和子目錄
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}
# 4.指定虛擬目錄
location /tshirt {
alias d:\programs\apache2\htdocs\tshirt;
index index.html index.htm;
}
}
# 5.虛擬主機(jī)www.emb.info配置
server {
listen 80;
server_name www.emb.info;
access_log emb.info/logs/access.log;
location / {
index index.html;
root emb.info/htdocs;
}
}
}小提示:運(yùn)行nginx -v可以查看該win32平臺(tái)編譯版支持哪些模塊。我這里的結(jié)果為:log代碼
代碼如下:
nginx version: nginx/0.7.65
tls sni support enabled
configure arguments:
--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顯然,最經(jīng)常用的memcache, rewrite模塊都沒(méi)在其中,因此該win32編譯版本僅能供基本開(kāi)發(fā)測(cè)試使用,對(duì)于產(chǎn)品平臺(tái),應(yīng)該重新編譯自己想要的win32版本,或者在linux下使用更方便。
6)查看nginx進(jìn)程
tasklist /fi “imagename eq nginx.exe”,如下顯示:
映像名稱(chēng) pid 會(huì)話名 會(huì)話# 內(nèi)存使用
========================= ======== ================ =========== ============
nginx.exe 8944 console 1 5,128 k
nginx.exe 6712 console 1 5,556 k
7)nginx常用命令
nginx -s stop 強(qiáng)制關(guān)閉
nginx -s quit 安全關(guān)閉
nginx -s reload 改變配置文件的時(shí)候,重啟nginx工作進(jìn)程,來(lái)時(shí)配置文件生效
nginx -s reopen 打開(kāi)日志文件8)其它
可以通過(guò)配置文件開(kāi)啟多個(gè)nginx工作進(jìn)程,但同時(shí)只有其中一個(gè)nginx工作進(jìn)程在工作,其他的阻塞等待。
一個(gè)nginx工作進(jìn)程最多同時(shí)可以處理1024個(gè)連接。
nginx中需要共享內(nèi)存的cache或者模塊無(wú)法在windows下正常使用。
不過(guò),nginx官方正在改進(jìn),將來(lái)nginx會(huì)以服務(wù)的方式運(yùn)行,使用 i/o completion ports代替select方法,使多個(gè)工作進(jìn)程能并發(fā)工作。
要使用nginx配合php-cgi使用,需要修改環(huán)境變量,否則,php-cgi運(yùn)行一定次數(shù)就推出,需要重啟,設(shè)置php_fcgi_max_requests這個(gè)變量為0即可。
以上在win7上通過(guò)。
8)nginx以windows服務(wù)形式啟動(dòng)
1.下載微軟兩個(gè)工具:
instsrv.exe srvay.exe
2.執(zhí)行命令:
instsrv nginxc:/nginx/srvany.exe
3.配置nginx的運(yùn)行參數(shù)
可以直接將配置導(dǎo)入到注冊(cè)表
windows registry editor version 5.00
[hkey_local_machine/system/currentcontrolset/services/nginx/parameters]
application=c://nginx//nginx.exe
appparameters=
appdirectory=c://nginx//注意:windows 下的nginx 內(nèi)置的module 很多沒(méi)有,用nginx -v 命令查看。
9)nginx下部署mono+asp.net環(huán)境
1、從mono for windows中提取fastcgi-mono-server
2、nginx nginx.conf 的配置:
代碼如下:
worker_processes 1;
error_log logs/error-debug.log info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/plain;
sendfile on;
keepalive_timeout 65;
index index.html index.htm;
server {
listen 80;
server_name yourdomain.com;
index index.aspx default.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;
}
}
}將上面的 fastcgi-mono-server 提取出來(lái),所有文件全部注冊(cè)到 gac(否則 web 應(yīng)用會(huì)找不到他們,當(dāng)然你也可以直接放到 webapp/bin),然后解壓到某個(gè)文件夾,這里假設(shè)為 d:/fastcgi-mono-server。
之后我們就可以按下列命令運(yùn)行 fastcgi:
fastcgi-mono-server2 /socket=tcp:127.0.0.1:8000 /root=d:\www\yourwebapp /applications=yourdomain.com:/:. /multiplex=true
最后執(zhí)行運(yùn)行 nginx 服務(wù)器,我們的 asp.net 程序就能脫離 iis。