Nginx
NGINX 將子域重定向到主域
我有 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 將包括所有伺服器名稱並將所有內容重定向到同一主機。