自 Mono 1.9 以来,ASP.Net 也能通过 Mono 的 fastcgi-mono-server2 在 FastCGI 下运行了,更为可贵的是,Mono 兼容 Windows ;我们可以在 Windows 下利用 lighttpd、nginx 或 Apache 等服务器上部署 ASP.Net。
我将 Mono for Windows 的 FastCGI-Mono-Server 提取出来,你可以 猛击这里 下载。
而 Nginx 目前也支持 Windows,是部署 Web 服务器的一个非常不错的选择,你可以在 Nginx 的官方网站找到下载。
下面是我对 Nginx nginx.conf 的配置,第 25 行属于关键内容。
1worker_processes 1;
2error_log logs/error-debug.log info;
3
4events {
5 worker_connections 1024;
6}
7
8http {
9 include mime.types;
10 default_type text/plain;
11 sendfile on;
12
13 keepalive_timeout 65;
14 index index.html index.htm;
15
16 server {
17 listen 80;
18 server_name yourdomain.com;
19 index index.aspx default.aspx;
20
21 location / {
22 root D:/www/yourwebapp;
23
24 fastcgi_pass 127.0.0.1:8000;
25 fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
26 include fastcgi_params;
27 }
28 }
29}
然后将上面的 FastCGI-Mono-Server 提取出来,所有文件全部注册到 GAC(否则 Web 应用会找不到他们,当然你也可以直接放到 webapp/bin),然后解压到某个文件夹,这里假设为 D:/FastCGI-Mono-Server。
之后我们就可以按下列命令运行 FastCGI:
1fastcgi-mono-server2 /socket=tcp:127.0.0.1:8000 /root="D:/www/yourwebapp" /applications=yourdomain.com:/:. /multiplex=True
最后执行运行 Nginx 服务器,我们的 ASP.Net 程序就能脱离 IIS 这个臃肿的家伙运行啦!!!