使用 FastCGI-Mono-Server4 的 Nginx 子域名

使用 FastCGI-Mono-Server4 的 Nginx 子域名

除了主网站之外,我还有 1 个子域名,全部在 nginx + fastcgi-mono-server4 上运行。

问题:我必须让子域名对所有 .conf/.webapp 文件使用不同的端口(端口 81),否则当我访问子域名.example.com,它始终显示内容示例.com相反。我的 .webapp 文件似乎有问题。如果我“破解”它并使用端口 81 作为子域,则显示正确的网站部分有效:https://stackoverflow.com/questions/28872585/how-to-handle-multiple-websites-through-fastcgi-server

以下是每个网站的 nginx.conf 文件:

##### SUBDOMAIN #####
server {
server_name subdomain.example.com;
root /subdomain;

listen 81;

location / {
fastcgi_index Default.aspx;
fastcgi_pass 127.0.0.1:9000;
include /opt/nginx/conf/fastcgi_params;
}

##### MAINWEBSITE #####
server {
    server_name example.com;
    root /mainwebsite;
    listen 80;

    location / {
    fastcgi_index Default.aspx;
    fastcgi_pass 127.0.0.1:9000;
    include /opt/nginx/conf/fastcgi_params;
    }

接下来是 fastcgi-mono-server4 所需的 .webapp 文件(均位于同一文件夹 /nginx/webapps 中):

##### SUBDOMAIN #####
<apps>
<web-application>
        <name>subdomain</name>
        <vhost>*</vhost>
        <vport>81</vport>
        <vpath>/</vpath>
        <path>/subdomain</path>
</web-application>
</apps>

##### MAINWEBSITE #####
<apps>
<web-application>
        <name>subdomain</name>
        <vhost>*</vhost>
        <vport>80</vport>
        <vpath>/</vpath>
        <path>/mainwebsite</path>
</web-application>
</apps>

为了启动 fastcgi 进程,我运行以下命令:

fastcgi-mono-server4.exe --appconfigdir /nginx/webapps /socket=tcp:127.0.0.1:9000 /logfile=/opt/nginx/logs/fastcgi.log &

答案1

我想更新我的发现并发布我最终做的事情。该服务fastcgi-mono-server4无法像 nginx 那样进行智能路由,因此我们必须使用文件中的<vport>或进行重定向。我排除了因为它看起来很丑陋,而且必须在防火墙中打开端口 81 是行不通的。<vpath>.webapp<vport> (:81)

因此,两害相权取其轻,我最终使用的解决方案是在nginx.conf.webapp文件上都添加一个小的路径附加项(在文件中添加路径“/m”)

最终的 URL 将是:subdomain.example.com/m

##### SUBDOMAIN #####
server {
    server_name subdomain.example.com;
    listen 80;

    //Addition of "/m" for location
    location /m {
    root /mainwebsite;
    fastcgi_index Default.aspx;
    fastcgi_pass 127.0.0.1:9000;
    include /opt/nginx/conf/fastcgi_params;
    }

.webapp 文件的内容:

##### SUBDOMAIN #####
<apps>
<web-application>
        <name>subdomain</name>
        <vhost>*</vhost>
        <vport>80</vport>
        <vpath>/m</vpath>   //Addition of "/m" for <vpath>
        <path>/subdomain</path>
</web-application>
</apps>

相关内容