прокси-сервер перенаправления nginx запрашивает http для https - PullRequest
0 голосов
/ 27 ноября 2018

на моем сервере nginx я бы перенаправил весь входящий HTTP-запрос на https.Я использую gunicorn, и я устанавливаю в качестве / location прокси 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 голосов
/ 27 ноября 2018

В вашем коде есть большая ошибка, вы не можете сделать это так, как сделали:

return 301 https://$server_name$request_uri;

Если вы хотите использовать это, вы должны разделить сервер http и https.Когда вы читаете свой файл, вы просто перенаправляете каждый раз, когда приходите на vhost, это вызывает слишком большое перенаправление.

Вы также можете поставить условие на возврат не выполненным, если вы уже находитесь в https ...

...