Nginx не может перенаправить HTTP на HTTPS в режиме прокси [дубликат]

Когда я получаю доступ по протоколу https, он работает. Но я обращаюсь по протоколу http, он вообще не работает.

Моя версия Nginx - 1.12.1. Вот конфигурация: / etc / nginx / sites-available / ***:

server {
    listen 80;
    server_name ***;
    client_max_body_size 10240M;

    location / {
        proxy_pass http://localhost:8080/guacamole/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        proxy_cookie_path /guacamole/ /;
        access_log off;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/***/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/***/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot

    if ($scheme != "https") {
        return 301 https://$host$request_uri;
    } # managed by Certbot
}
0
задан 27 September 2017 в 13:07
1 ответ

Я бы включил журналы отладки на nginx и отслеживал, что на самом деле происходит, когда вы пытаетесь получить доступ к своей странице с помощью http.

Я бы также не рекомендовал использовать IF-оператор внутри nginx для того, чего вы пытаетесь достичь. Попробуйте разбить виртуальный хост на два серверных раздела:

server {
    listen 80;
    server_name ***;
    rewrite ^ https://***$uri permanent;
}
server {
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/***/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/***/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    server_name ***;
    client_max_body_size 10240M;

    location / {
        proxy_pass http://localhost:8080/guacamole/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        proxy_cookie_path /guacamole/ /;
        access_log off;
    }
}
3
ответ дан 4 December 2019 в 12:19

Теги

Похожие вопросы