Nginx как прокси и 3 виртуальникa Apache, Gogol, 30-Сен-19, 16:48 [смотреть все]Приветствую, коллеги!Имеем: nginx на ssl порту. Он должен проксировать запросы на три виртуальных хоста Apachre, которые живут на 127.0.0.1 на разных портах. Конфиги идентичные, за исключением имён хостов, сертификатов и адресов, куда проксировать. В двух из трёх случаев всё идет, как надо. Но при авторизации (php) на третьем хосте в браузер проваливается URL вида https://127.0.0.1:8082/$request_uri и соответсвенно, браузер получает фигу от локалхоста. Вот конфиг: server { listen х.х.х.х:443 ssl; server_name <hostname>; access_log <path_to_log>; ssl on; ssl_certificate <path_to_cert>; ssl_certificate_key <path_to_key>; location / { proxy_pass http://127.0.0.1:8082; proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } if ($host != $server_name) { return 404; } } Есть идеи, почему так происходит и как это пофиксить?
|
- Nginx как прокси и 3 виртуальникa Apache, Аноним, 19:01 , 30-Сен-19 (1)
не то, чтобы я сильно в этом всем разбирался, но proxy_redirect точно должен быть off? >Но при авторизации (php) на третьем хостедальше идет 301 редирект или что-то с js или тегом meta?
- Nginx как прокси и 3 виртуальникa Apache, Gogol, 21:40 , 30-Сен-19 (3)
> не то, чтобы я сильно в этом всем разбирался, но proxy_redirect точно > должен быть off? >>Но при авторизации (php) на третьем хосте > дальше идет 301 редирект или что-то с js или тегом meta?Да, дальше 302 и Ajax
- Nginx как прокси и 3 виртуальникa Apache, DiabloPC, 19:23 , 30-Сен-19 (2)
> В двух из трёх случаев всё идет, как надоНе совсем по теме, но таки спрошу: можно работающие конфиги, а то у самого такая надобность проскакивала, и знаю что ещё понадобится, а маны читать лениво
- Nginx как прокси и 3 виртуальникa Apache, Gogol, 21:42 , 30-Сен-19 (4)
>> В двух из трёх случаев всё идет, как надо > Не совсем по теме, но таки спрошу: можно работающие конфиги, а то > у самого такая надобность проскакивала, и знаю что ещё понадобится, а > маны читать лениво Приведенный конфиг работает в 2-случаях и не работает в третьем. Они одинаковые кроме имен, портов и путей к сертификатам. Имена резолвятся как надо, на портах слушает, кто надо, сертификаты и пути к ним валидные. В том-то и проблема :-)
- Nginx как прокси и 3 виртуальникa Apache, Аноним, 22:06 , 30-Сен-19 (5)
... > Приведенный конфиг работает в 2-случаях и не работает в третьем. Они одинаковые > кроме имен, портов и путей к сертификатам. Имена резолвятся как надо, > на портах слушает, кто надо, сертификаты и пути к ним валидные. > В том-то и проблема :-) могетъ быть проблема в каком-либо символе из конфига в 3 - прокопипастить из 1-ого рабочего и внимательнее перебить различия.. & возможно шлифануть diff`ом ?!
- Nginx как прокси и 3 виртуальникa Apache, Gogol, 22:14 , 30-Сен-19 (6)
> ... >> Приведенный конфиг работает в 2-случаях и не работает в третьем. Они одинаковые >> кроме имен, портов и путей к сертификатам. Имена резолвятся как надо, >> на портах слушает, кто надо, сертификаты и пути к ним валидные. >> В том-то и проблема :-) > могетъ быть проблема в каком-либо символе из конфига в 3 - прокопипастить > из 1-ого рабочего и внимательнее перебить различия.. & возможно шлифануть diff`ом > ?!Делал, не помогло. Более того, если в браузере тиснуть кнопочку "Назад", хостнейм становится нормальным, $request_uri сохраняется и дальше всё работает. Но непорядок же ж!
- Nginx как прокси и 3 виртуальникa Apache, Gogol, 23:25 , 30-Сен-19 (7)
>[оверквотинг удален] >>> Приведенный конфиг работает в 2-случаях и не работает в третьем. Они одинаковые >>> кроме имен, портов и путей к сертификатам. Имена резолвятся как надо, >>> на портах слушает, кто надо, сертификаты и пути к ним валидные. >>> В том-то и проблема :-) >> могетъ быть проблема в каком-либо символе из конфига в 3 - прокопипастить >> из 1-ого рабочего и внимательнее перебить различия.. & возможно шлифануть diff`ом >> ?! > Делал, не помогло. Более того, если в браузере тиснуть кнопочку "Назад", хостнейм > становится нормальным, $request_uri сохраняется и дальше всё работает. Но непорядок же > ж!Я победил это! Вот так работает: location / { proxy_pass http://127.0.0.1:8082; proxy_redirect off; proxy_set_header Host $server_name:$server_port; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
- Nginx как прокси и 3 виртуальникa Apache, Gogol, 15:58 , 01-Окт-19 (8)
>> В двух из трёх случаев всё идет, как надо > Не совсем по теме, но таки спрошу: можно работающие конфиги, а то > у самого такая надобность проскакивала, и знаю что ещё понадобится, а > маны читать лениво Работающий для третьего случая конфиг (часть) в моём последнем посте.
- Nginx как прокси и 3 виртуальникa Apache, abi, 16:36 , 01-Окт-19 (9)
Но при авторизации > (php) на третьем хосте в браузер проваливается URL вида https://127.0.0.1:8082/$request_uri > и соответсвенно, браузер получает фигу от локалхоста.Думаю, генератор ссылок в софтине на третьем хосте не (везде) проверяет хедеры или требует ручного указания реального URL. Такое встречается.
|