我有兴趣使用Nginx为前端代理fastcgi-server提供多个.Net站点。我想知道是否可以在一个fastcgi-mono-server4端口(9000)上支持2个站点,或者是否可接受的做法是为每个站点创建一个端口?在指定webapp文件时似乎无处可指定是否使用9000或9001,因此除非您可以指定fastcgi进程池,否则我会感到困惑。我在使用带有2个主机的webapp配置文件在端口9000上尝试2个站点时发现...在两个URL上都提供了相同的站点。
由于
答案 0 :(得分:0)
是。 fastcgi-mono-server4(mono 3.12.1)在单个进程中可以使用多个webapp。
似乎fastcgi-mono-server只使用vhost + vport + vpath来匹配.webapp文件中定义的webapp节点。
my_nginx.conf
server {
listen 80;
server_name localhost;
location / {
root /home/test/www;
index index.html Default.aspx;
fastcgi_pass 127.0.0.1:9000;
include /etc/nginx/fastcgi_params;
}
}
server {
listen 81;
server_name localhost;
location / {
root /home/test/www2;
index index.html Default.aspx;
fastcgi_pass 127.0.0.1:9000;
include /etc/nginx/fastcgi_params;
}
}
它包含2个webapp节点
<apps>
<web-application>
<name>www</name>
<vhost>*</vhost>
<vport>80</vport>
<vpath>/</vpath>
<path>/home/test/www/</path>
<enabled>true</enabled>
</web-application>
<web-application>
<name>www2</name>
<vhost>*</vhost>
<vport>81</vport>
<vpath>/</vpath>
<path>/home/test/www2/</path>
<enabled>true</enabled>
</web-application>
</apps>
我刚刚测试过使用vport来区分它们,并取得成功。我认为使用vhost或vpath或vhost + vport + vpath的任何组合都应该有用。
在9000端口收听。
fastcgi-mono-server4 --appconfigfile=./two.webapp /socket=tcp:127.0.0.1:9000