NGINX 将子域名重定向到主域名

NGINX 将子域名重定向到主域名

我的服务器上运行着 2 个网站,一个 Wordpress 网站和一个在端口 8080 上运行的 Web 应用程序。我想使用 NGINX 将 mysite.com 和 www.mysite.com 指向 Wordpress 网站,并将 app.mysite.com 指向 Web 应用程序。

我做了两个单独的配置,如下所示——

我的站点

server {
        listen 443 ssl;
        server_name www.mysite.com mysite.com;

        < ssl configs >

        include global/restrictions.conf;

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

server {
        listen 80;
        server_name mysite.com www.mysite.com;
        return 301 https://$host$request_uri;
}

app.mysite.com

server {
        listen 443 ssl;

        server_name app.mysite.com;

        < ssl configs >

        location / {
                proxy_pass http://127.0.0.1:8080;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarder-For $remote_addr;
        }

        location /stream/ {
                proxy_pass http://127.0.0.1:8080;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }

        location ~ /.well-known {
                allow all;
        }
}

server {
        listen 80;
        server_name app.mysite.com;
        return 301 https://$host$request_uri;
}

但当我尝试访问 app.mysite.com 时,它会重定向到 mysite.com。我该如何修复此问题?

谢谢!

答案1

我的错。这个错误非常愚蠢。我为 Web 应用创建的符号链接是错误的,因此实际上只有主网站的配置。

答案2

我建议您使用 return 301 https://$server_name$request_uri;

在返回的地方 301 https://$host$request_uri;

因为 $host 将包含所有服务器名称并将所有内容重定向到同一主机。

相关内容