Nginx

NGINX 將子域重定向到主域

  • June 27, 2016

我有 2 個網站在我的伺服器上執行,一個 Wordpress 站點和一個在埠 8080 上執行的網路應用程序。我想將 mysite.com 和 www.mysite.com 指向 Wordpress 站點,並將 app.mysite.com 指向網路應用程序使用 NGINX。

我做了2個單獨的配置如下 -

mysite.com

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。我該如何解決?

謝謝!

我的錯。這個錯誤非常愚蠢。我為 webapp 創建的符號連結是錯誤的,所以實際上只有主網站的配置。

我建議你使用 return 301 https:// $ server_name $ request_uri;

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

因為 $host 將包括所有伺服器名稱並將所有內容重定向到同一主機。

引用自:https://serverfault.com/questions/786037