Предотвратите изменение порта на перенаправлении в nginx

  • У Вас есть маршруты от DNS и серверов WINS к нерабочему VLAN (VLAN2)?
  • Вам перечисляли Ваш сервер DNS как авторитетный для сети VLAN2 IP? Т.е. диапазон IP для VLAN2 перечислен в Ваших Обратных Зонах Поиска?
  • Что Вы используете для передачи широковещательных сообщений DHCP от VLAN до другого? У Вас есть маршрутизатор между сетями, которые могли вмешиваться?
  • Что делает вход в систему, который говорит Ваш клиент?
  • Что делает вход в систему, который говорит сервер DHCP?

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

7
задан 1 February 2011 в 03:22
3 ответа

Я нашел ответ на этот вопрос, более тщательно читая документы HttpCoreModule.

port_in_redirect off;

Это сохраняет порт, используемый клиентом во время перенаправлений. Тесно связанный server_name_in_redirect который использует первое имя хоста для перенаправлений. Поскольку я не хотел, чтобы sitename.v.myserver.com перенаправил на sitename.com,

10
ответ дан 2 December 2019 в 23:14

Код позади NGINX, вероятно, использует переменный SERVER_PORT FASTCGI для определения, где направить пользователя. SERVER_PORT будет содержать порт nginx, слушает на, так, чтобы был бы 8000 в Вашем случае.

Можно попробовать что-то вроде этого за тестирование цели:

location ~ \.php$ {
        [...]
        fastcgi_param  SERVER_PORT 80;
}

адаптированный к Вашей конфигурации. Это - грязный взлом, но может помочь Вам диагностировать проблему.

3
ответ дан 2 December 2019 в 23:14

У меня такая же проблема с Nginx+PHP-FPM в докере на 80:8080 (сопоставлении портов). перенаправление порта_в_не помогло. с absolute_redirect проблема была периодически.

Итак, мое решение:создать файл f.e. schema.conf:

map $http_x_forwarded_proto $balancer_port {
    default 80;
    "https" 443;
}
 map $http_x_forwarded_proto $balancer_https {
     default "NO";
     "https" "YES";
}

А затем просто используйте порт:

location ~ \.php$ {
        try_files       $uri @bitrix;
        fastcgi_pass    php-fpm:9000;
        fastcgi_index   index.php;
        include         fastcgi_params;
        fastcgi_param   SERVER_PORT     $balancer_port;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
0
ответ дан 24 November 2021 в 13:35

Теги

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