TYPO3 слишком много перенаправлений

Моя среда следующая:

Cloudflare (HTTPS) -> AWS ALB (HTTPS) -> AWS EC2 (HTTP) (nginx, php-fpm, typo3)

Я использую режим Full (строгий) SSL Cloudflare.

Таким образом, существует двойное завершение SSL: один раз в Cloudflare, а другой в балансировщике нагрузки AWS. Приложение TYPO3 получает запросы по HTTP.

Конфигурация nginx, которую я использую, взята из официальной документации TYPO3:

Отрывок:

...

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

location = /typo3 {
    rewrite ^ /typo3/;
}

location /typo3/ {
    absolute_redirect off;
    try_files $uri /typo3/index.php$is_args$args;
}

location ~ [^/]\.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }
    fastcgi_buffer_size 32k;
    fastcgi_buffers 8 16k;
    fastcgi_connect_timeout 240s;
    fastcgi_read_timeout 240s;
    fastcgi_send_timeout 240s;

    # this is the PHP-FPM upstream - see also: https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/#connecting-nginx-to-php-fpm
    fastcgi_pass         php-fpm:9000;
    fastcgi_index        index.php;
    include              fastcgi.conf;
}

При доступе к https://<MY_DOMAIN>.com/typo3/ я получаю ошибку ERR_TOO_MANY_REDIRECTS. Мой index.php в папке typo3/ стандартный, ничего необычного. Должно загружаться приложение TYPO3.

<?php
call_user_func(static function () {
    $classLoader = require dirname(dirname(__DIR__)).'/vendor/autoload.php';
    \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(1, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_BE);
    \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Backend\Http\Application::class)->run();
});

На другом веб-сайте TYPO3, где я не использую Cloudflare + балансировщик нагрузки, где SSL завершается на самом сервере, у меня нет этой проблемы.

В журналах нет ничего, что указывало бы на то, где может быть проблема. Я даже включил ведение журнала отладки в nginx. TYPO3 получает запросы по HTTP. Я предполагаю, что TYPO3 сам перенаправляет на HTTPS, что вызывает цикл перенаправления, но я не уверен.

Связанный: Где nginx хранит rewrite_log?

Luuk 06.04.2024 16:04

Чтобы отследить источник перенаправлений, попробуйте установить rewrite_log on; и error_log ...path-to-error.log debug; в конфигурации nginx, затем снова откройте URL-адрес и проанализируйте логи. Попробуйте заменить содержимое index.php чем-нибудь простым, например <?php echo 'hello', чтобы гарантировать, что перенаправления не инициируются кодом PHP.

Ruslan Osmanov 06.04.2024 16:07

@RuslanOsmanov Когда я меняю index.php на что-то простое, например <?php echo 'hello', все работает нормально. Но когда нужно загрузить TYPO3, это не работает. Я разместил index.php в посте, чтобы вы могли это увидеть.

Subzero123 06.04.2024 16:18

Я думаю, TYPO3 перенаправляет с http на https. Существует промежуточное программное обеспечение ForcedHttpsBackendRedirector, которое активируется, если параметр конфигурации lockSSL не равен false или нулю. Попробуйте проверить, действует ли эта настройка.

Ruslan Osmanov 06.04.2024 16:51

Вот и все! Я изменил 'lockSSL' => false (ранее для него было установлено значение «true») в config/system/settings.php, и теперь это работает. Большое спасибо :)

Subzero123 06.04.2024 17:23

@RuslanOsmanov, ты можешь написать это как ответ, если хочешь, чтобы я принял его. В противном случае, хорошего дня.

Subzero123 06.04.2024 17:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
93
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В TYPO3 есть промежуточное программное обеспечение ForcedHttpsBackendRedirector , которое перенаправляет с http:// на https://, если параметр конфигурации lockSSL не равен false или не равен нулю. Попробуйте установить для этой опции значение false в конфигурации TYPO3.

Другие вопросы по теме