【问题标题】:Nginx HTTPS (443) config ignored and HTTP (80) used insteadNginx HTTPS (443) 配置被忽略,而使用 HTTP (80)
【发布时间】:2021-04-22 22:40:01
【问题描述】:

我试图将非安全(domain.com 和 www.domain.com)重定向到安全版本,但出现“重定向过多”错误。

所以,我决定简化配置来测试并尝试找出错误。

server {
    listen 80;
    listen [::]:80 ipv6only=on;

    server_name example.com www.example.com;

    return 302 https://www.google.com;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2 ipv6only=on;

    ssl_certificate         /etc/ssl/cert.pem;
    ssl_certificate_key     /etc/ssl/cert.key;

    server_name example.com www.example.com;
    
    return 302 https://www.amazon.com;
}

如果我没记错的话,当我访问http://example.com/http://www.example.com/时,我应该被重定向到https://www.google.com

如果我访问 https://example.com/https://www.example.com/,我应该被重定向到 https://www.amazon.com

但是,无论如何,我总是被重定向到https://www.google.com。怎么了?

【问题讨论】:

    标签: nginx ssl server


    【解决方案1】:

    您的浏览器可能正在缓存重定向。 尝试对这两个测试用例使用隐身窗口。您的配置文件似乎没问题。

    对于您的 domain.com,您可以进行以下配置:

    server {
      server_name _;
      listen 443;
    
      root /var/www/html;
      location / {
        try_files $uri $uri/ /index.html;
      }
    }
    
    server {
      listen 80;
      server_name _;
    
      return 301 https://$host$request_uri;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-04-23
      • 1970-01-01
      • 2017-10-29
      • 2013-04-09
      • 1970-01-01
      • 2020-05-31
      • 2021-08-12
      • 2014-05-24
      • 2016-09-13
      相关资源
      最近更新 更多