将多个域名重定向到 SSL - NGINX

将多个域名重定向到 SSL - NGINX

我有以下服务器配置:

server {
  listen 80;
  server_name default;
  return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name default;
    root /home/forge/default/public;

    ... and so it continues

我还有两个域名,test.comexample.com。它们都指向服务器的 IP 地址。如果我转到test.com,它会被重定向到 https,但如果我转到example.com,它会被重定向到的 https 版本,test.com而不是的 https 版本example.com。为什么会发生这种情况?我对服务器配置很陌生。在其他 Server Fault 答案中,我只发现使用变量,$host但它似乎不起作用。

答案1

我刚刚遇到了同样的问题,确实是浏览器缓存的问题!

需要注意的是:检查重定向的最佳解决方案之一(未缓存)是curl从命令行到服务器:

curl -I http://my-server.com

关于浏览器缓存,清除整个缓存 -刷新你的缓存网站- 可以,但有点过头了!确保浏览器不使用缓存的另一种方法是请求略有不同的 URL,即:

http://my-server.com?randomString

我读完后想引用的另一点server_name nginx 文档:感觉接受多个域名的推荐方式是使用空的 server_name""而不是default,即对于您的配置示例:

server {
  listen 80;
  server_name "";
  return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name "";
    root /home/forge/default/public;

    ... and so it continues

但是,如果我错了,请纠正我!:)

相关内容