【发布时间】:2017-04-09 20:38:25
【问题描述】:
我有一个顶级域。我们称之为example.com。我还有三个子域:www.example.com、app.example.com 和 static.app.example.com。
我希望 example.com 重定向到 www.example.com。
我还希望所有 http 流量都重定向到 https,同时保留域和路径。
这些是我的 nginx 配置文件(抱歉,有点长):
############### app.example.com ###################
server {
listen 80;
listen [::]:80;
server_name app.example.com;
return 301 https://app.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
server_name app.example.com;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /assets {
alias /var/www/exampleapp/dist/public;
}
location /.well-known {
alias /var/www/example/.well-known;
}
}
############### static.app.example.com ###################
server {
listen 80;
listen [::]:80;
server_name static.app.example.com;
return 301 https://static.app.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
server_name static.app.example.com;
location / {
alias /var/www/exampleapp/public/;
}
location /.well-known {
alias /var/www/example/.well-known;
}
}
############### www.example.com & example.com ###################
server {
listen 80;
listen [::]:80;
server_name www.example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
include snippets/ssl-example.com.conf;
include snippets/ssl-params.conf;
server_name www.example.com;
location / {
proxy_pass http://localhost:5500;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /assets {
alias /var/www/example/dist/public;
}
location /.well-known {
alias /var/www/example/.well-known;
}
}
现在这是奇怪的部分。这在桌面 chrome 和 firefox 上运行良好。但是在移动 chrome 和 edge 上,它做了一些奇怪的事情。它从example.com 重定向到app.example.com。我不知道它是什么。我尝试清除浏览器缓存并使用 nginx 设置,但没有任何帮助。
【问题讨论】: