nginx重定向代理请求http到https到许多重定向消息

时间:2018-11-27 17:45:08

标签: nginx https gunicorn

在我的Nginx服务器中,我会将所有HTTP传入请求重定向到https。 我使用gunicorn,并将我设置为/位置代理127.0.0.1:8080 我的nginx.conf配置文件的一部分是:

server {
    listen       80;
    listen       443 default ssl http2;
    ssl_certificate  /var/www/web/core/mycert.crt;
    ssl_certificate_key  /var/www/web/core/mykey.key;
    server_name  ~^(?<subdomain>\w+)\.mydomain\.io$;
    root         /var/www;


    return 301 https://$server_name$request_uri;


    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location /static/ {
    alias /var/www/web/core/frontend/static/;
    }       

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        #add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
        proxy_set_header  X-DTS-SCHEMA $subdomain;
    }

但是当我尝试打开页面的http版本时,出现“许多重定向错误” 我还尝试添加代理指令:

proxy_redirect http:// https://;

但什么也没发生。

我如何每次都能将代理请求重定向到https?

预先感谢

1 个答案:

答案 0 :(得分:1)

您的代码中有一个大错误,您不能像以前那样这样做:

return 301 https://$server_name$request_uri;

如果您希望这样使用,则应拆分http和https服务器。读取文件时,您每次到达虚拟主机时都只是重定向,这导致了太多的重定向。

如果您已经在https ...

中,也可以为返回条件设置条件,使其不执行。