Ngnix 是一個高性能的 Web 服務器 和 反向代理服務器,也可以作為負載均衡服務器;功能如此強大,性能非常優秀,天生就是天之驕子,一經出世就走上神壇,開始了一段叱吒風雲的不歸路。
一直在微軟的陣營里面混,時間久了難免有種被束縛的感覺,就像一個人被長期封閉在市區,時間長了免不了想到郊區透透氣;以前都在用IIS 作為 Intenet服務器,正所謂近水樓台先得月,正如比較流行的 LAMP ,我們的組合拳就是 WIMA(Windows + IIS +MS SQL+ ASP.NET),當然IIS 比較強大,很多附屬的功能都被添加進去,以至於性能大打折扣,而 Ngnix 呢? 比較輕量級,船小好調頭,相比IIS更加敏捷;現在不都推崇敏捷開發,我也是敏捷的一份子。
能使用Ngnix還得感謝Mono計划,把好多linux上面的好東東,都遷移到windows中來,吃水不忘打井人嘛,要想在Ngnix上運行asp.net,首先必須下載以下幾個東東:
1. Ngnix for window 版本
2. FastCGI-Mono-Server
如果想在Ngnix 上運行asp.net,就必須要依靠FastCGI。
1. Ngnix的安裝
Ngnix的版本有安裝版和綠色版兩種,Ngnix安裝完以后,找到conf 目錄下的 nginx.conf ,它是Ngnix 的配置文件,以下是該文件的關鍵部分:
location / {
root aspx;
index Default.aspx;
}
其中 root 是需要運行網站的目錄,可以用相對路徑也可以用絕對路徑,
例如上面是用的相對路徑,相對路徑是相對與Ngnix.exe而言的,也可以直接寫 c:\aspx
index 是要運行網站的起始頁,IIS 的啟用默認文檔。
location ~ \.aspx$ {
root aspx;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index Default.aspx;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
root 如上所述也是運行的網站的目錄,
fastcgi_pass 就是運行FastCGI-Mono-Server的服務器地址
fastcgi_index 是運行的 FastCGI-Mono-Server的起始頁,下面的兩個參數是fastcgi的相關參數等。
到目前為止,Ngnix 服務器的安裝和配置已經完成了,萬里長征總算走完了第一步。
2. FastCGI-Mono-Server 的安裝
下載完以后包括兩個兩個版本:fastcgi-mono-server2 和 fastcgi-mono-server4
fastcgi-mono-server2 用來運行 .net 2.0;fastcgi-mono-server4 用來運行.net 4.0。
如果要運行asp.net 網站,需要執行以下命令:
D:\FastCGI-Mono-Server\fastcgi-mono-server2 /socket=tcp:127.0.0.1:9000 /root="D:\Program
Files\nginx\aspx" /applications=/:. /multiplex=True
tcp:127.0.0.1:9000 就是Ngnix 配置文件中的 fastcgi 的服務器;root 是要運行的網站的目錄;applications是網站的域名,如果沒有域名,只想通過ip訪問的話可以為空不填寫。可以把上面要運行的命令做成一個bat批處理文件,這樣以后運行的話可以直接雙擊運行即可。
3.注意事項
需要把 Mono.WebServer2.dll,Mono.Security.dll,Mono.Posix.dll ,fastcgi-mono-server2.exe
放到要運行網站的bin路徑下,當然也可以用gacutil.exe 命令 把 上面文件加載到 全局程序集緩存中。
在后台必須一直運行着下面窗口
先運行 fastcgi 服務器,再運行 Ngnix 服務器,最后輸入 http://localhost 就可以看到效果了。
網站效果:
有點簡陋,不好意思這么晚了還出來嚇唬大家,哈哈