nginx слишком много перенаправлений (cloudflare и https)

Привет и спасибо за помощь.

Я искал и нашел похожие проблемы, но не то, что у меня возникло. Я получаю сообщение «Слишком много перенаправлений» при попытке настроить nginx для обслуживания моего приложения.

Это: 80 конфигурация сервера

server{
    listen 80;
    listen [::]:80;
    server_name app.domain.com;

    location /{         
        # This is an acceptable config: If request went trought http, 
        # redirect to https server
        if ($scheme = "http"){
            return 301 https://$host$request_uri;
        }

        # This is what i REALLY want: If request went trought http (this
        # server is listening port 80) and the user agent does not match,
        # then redirect to https, else show a specific html 
        #if ($http_user_agent !~* "SPECIFIC USER AGENT" ) {
        #   return 301 https://$host$request_uri;
        #}
        #if ($http_user_agent = "SPECIFIC USER AGENT" ) {
        #   return 301 https://app.domain.com/specific.html;
        #}
    }

    location /specific.html {
        root /home/htmls/;
        autoindex off;
    }


    # This is required for the acme challenge oof Let's encrypt
    location /.well-known/acme-challenge {
        alias /etc/letsencrypt/webrootauth/.well-known/acme-challenge;
    }

}

Это https-сервер: 443

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name app.domain.com;

    access_log /var/log/nginx/app-access.log;
    error_log  /var/log/nginx/app-error.log;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/app.domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/app.comain.com/privkey.pem;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    charset utf-8;

    location / {
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_read_timeout 90s;
        proxy_connect_timeout 90s;

        #proxy_set_header Host $http_host;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass http://127.0.0.1:8000;
    }
}

Я настроил свое приложение веб-сервера на добавить сертификат SSL. Сайт находится за защитой от облачных вычислений (но отключен для этого конкретного поддомена). Я работаю с Let's encrypt certbot. Мое приложение работало нормально, я обновлял сертификат несколько раз, но в этом последнем случае возникла проблема «слишком много перенаправлений».

Я пробовал почти все, несколько конфигураций шифрования cloudflare. Я могу ответить почти на любой сценарий, который вы могли бы мне задать. В результате всегда получается «слишком много перенаправлений» или сайт недоступен.

Пожалуйста, помогите мне! это сводит меня с ума: S

0
задан 18 April 2017 в 18:16
1 ответ

Вместо того, чтобы позволить всем вашим серверам выполнять перезапись в доменах, почему бы не позволить Cloudflare сделать это со своими правилами трафика. Простая перезапись http: // * -> https: // *

Очевидно, вы можете настроить это, как хотите, и добавить любые страницы ошибок и т. Д., Которые вы хотели бы отображать для пользователя, но гораздо быстрее реализовать это здесь и в результате уменьшить объем трафика, попадающего на исходные серверы.

1
ответ дан 4 December 2019 в 16:17

Теги

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