如何通过FastCGI服务器处理多个网站

时间:2015-03-05 07:49:02

标签: nginx fastcgi-mono-server

我有兴趣使用Nginx为前端代理fastcgi-server提供多个.Net站点。我想知道是否可以在一个fastcgi-mono-server4端口(9000)上支持2个站点,或者是否可接受的做法是为每个站点创建一个端口?在指定webapp文件时似乎无处可指定是否使用9000或9001,因此除非您可以指定fastcgi进程池,否则我会感到困惑。我在使用带有2个主机的webapp配置文件在端口9000上尝试2个站点时发现...在两个URL上都提供了相同的站点。

由于

1 个答案:

答案 0 :(得分:0)

是。 fastcgi-mono-server4(mono 3.12.1)在单个进程中可以使用多个webapp。

似乎fastcgi-mono-server只使用vhost + vport + vpath来匹配.webapp文件中定义的webapp节点。

  1. 在不同的端口80与81
  2. 中设置两个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;
        }
    }
    
    1. two.webapp
    2. 它包含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的任何组合都应该有用。

      1. 启动fastcgi服务器
      2. 在9000端口收听。

        fastcgi-mono-server4 --appconfigfile=./two.webapp /socket=tcp:127.0.0.1:9000