我的服务器上运行着 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 将包含所有服务器名称并将所有内容重定向到同一主机。