Nginx HTTP到HTTPS重定向循环

时间:2016-02-24 20:11:23

标签: redirect nginx

我有以下Nginx配置:

server {
        listen 80;
        server_name .example.net .example.com;
        return 301 https://example.com$request_uri;
}

server {
        listen 80;
        server_name beta.example.com;

        error_page 403 /403;
        error_page 404 /404;
        error_page 500 /500;

        client_max_body_size 5M;

        # Handle all locations
        location / {
                proxy_pass http://127.0.0.1:8080;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

server {
        listen 443;
        ssl on;
        ssl_certificate /etc/ssl/cert_chain.crt;
        ssl_certificate_key /etc/ssl/csr.pem;

        server_name example.com;

        error_page 403 /403;
        error_page 404 /404;
        error_page 500 /500;

        client_max_body_size 5M;

        location / {
          proxy_pass http://127.0.0.1:8000;

          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

我想将HTTP请求重定向到HTTPS但是我得到了一个重定向循环。我已经阅读了其他问题的其他答案,包括this onethis one,但他们的解决方案都没有解决我的问题。有任何想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

看起来您的后端(在127.0.0.1:8000上运行)会发出Location: http://example.com/标题。

请查看访问日志,nginx和后端。

或使用httpliveheaderstcpdump调查流量。