dimitrius86
@dimitrius86
Сисадмин. Немного программирую.

TO_MANY_REDIRECTS при включении редиректа на https?

Добрый день.

Прошу помощи у сообщества. Всю голову уже сломал. Сайт на битриксе работает.

Есть сайт.

Апач бэкенд, нгинкс фронтэнд.
Настроил SSL. Всё работает. НО! При включении редиректа в апаче, сайт сразу выпадает в ошибку TO_MANY_REDIRECTS

По логам всё чисто.

Вот часть конфига апача:
<VirtualHost *:80>
        ServerName site.ru
        ServerAlias www.site.ru
       Redirect / https://site.ru/
        DocumentRoot "/wwwroot/data"
        <Directory "/wwwroot/data">
                Options Indexes FollowSymLinks
                AllowOverride All
                Satisfy any
        </Directory>

        Alias /phpmyadmin/ "/wwwroot/phpmyadmin/"
        <Directory "/wwwroot/phpmyadmin">
                AllowOverride All
                Options FollowSymlinks
                Require all denied
                Require ip 192.168.29.2
        </Directory>
</VirtualHost>


Вот nginx:
server {
                resolver 8.8.8.8;
                listen 80;
                listen 443 ssl;

                #access_log off;
                ssl_certificate /usr/local/etc/nginx/certs/certificate.crt;
                ssl_certificate_key /usr/local/etc/nginx/certs/private.key;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                ssl_ciphers HIGH:!aNULL:!MD5;
                ssl_session_timeout  5m;
                #return 301 https://site.ru$request_uri;

                location / {
                        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_set_header Host "site.ru";
                        proxy_pass_request_headers on;
                        proxy_cache all;
                        proxy_cache_key "$request_method|$is_args|$host|$request_uri";
                        proxy_cache_revalidate on;
                        proxy_cache_use_stale error timeout updating;
                        proxy_cache_bypass $cookie_nocache $arg_nocache;
                        proxy_ignore_headers "Set-Cookie";
                        proxy_cache_background_update on;
                        proxy_cache_lock on;
                        proxy_cache_valid any 15m;
                        proxy_cache_valid 404 502 503 1m;

                        proxy_cookie_domain 62.0.0.0 $host;
                        sub_filter      "62.0.0.0" $host;

                        proxy_pass $scheme://62.0.0.0;
                }


Подскажите куда рыть ?
  • Вопрос задан
  • 421 просмотр
Решения вопроса 1
@q2digger
никого не трогаю, починяю примус
Очевидно же.
Если у вас все описано в одном блоке server , и http и https , то надо условие:
if ($scheme = http) {
        return 301 https://site.ru$request_uri;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
https://klondike-studio.ru/standards/standartnyy-h...
писал тут как сделать.
Причина в том что все маны а как следствие и сервера в мире настроены с ошибкой и host при nginx+apache не сохраняется
а заменяется и в результате этой дебильной схемы страдает js которому нужно знать на каком протоколе сейчас он находится, ну и редиректы поскольку хост не соответствует тому что нужно, в результате опять срабатывает правило редиректа.
Короче все что вам нужно это подобрать редирект кторый подойдет на вашей конфигураци.
Примеры я дал в ссылке
ЧПУ битрикса разместить в самом конце
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы