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-Serverfastcgi-mono-server2 /socket=tcp:127.0.0.1:9000 /root="D:Program
Filesnginxaspx" /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 就可以看到效果了。
网站效果: