The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Nginx как прокси и 3 виртуальникa Apache"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (nginx)
Изначальное сообщение [ Отслеживать ]

"Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от Gogol (ok), 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;
    }
}

Есть идеи, почему так происходит и как это пофиксить?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от Аноним (1), 30-Сен-19, 19:01 
не то, чтобы я сильно в этом всем разбирался, но proxy_redirect точно должен быть off?
>Но при авторизации (php) на третьем хосте

дальше идет 301 редирект или что-то с js или тегом meta?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от Gogol (ok), 30-Сен-19, 21:40 
> не то, чтобы я сильно в этом всем разбирался, но proxy_redirect точно
> должен быть off?
>>Но при авторизации (php) на третьем хосте
> дальше идет 301 редирект или что-то с js или тегом meta?

Да, дальше 302 и Ajax

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от DiabloPC (ok), 30-Сен-19, 19:23 
> В двух из трёх случаев всё идет, как надо

Не совсем по теме, но таки спрошу: можно работающие конфиги, а то у самого такая надобность проскакивала, и знаю что ещё понадобится, а маны читать лениво

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от Gogol (ok), 30-Сен-19, 21:42 
>> В двух из трёх случаев всё идет, как надо
> Не совсем по теме, но таки спрошу: можно работающие конфиги, а то
> у самого такая надобность проскакивала, и знаю что ещё понадобится, а
> маны читать лениво

Приведенный конфиг работает в 2-случаях и не работает в третьем. Они одинаковые кроме имен, портов и путей к сертификатам. Имена резолвятся как надо, на портах слушает, кто надо, сертификаты и пути к ним валидные. В том-то и проблема :-)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от Аноним (5), 30-Сен-19, 22:06 
...
> Приведенный конфиг работает в 2-случаях и не работает в третьем. Они одинаковые
> кроме имен, портов и путей к сертификатам. Имена резолвятся как надо,
> на портах слушает, кто надо, сертификаты и пути к ним валидные.
> В том-то и проблема :-)

могетъ быть проблема в каком-либо символе из конфига в 3 - прокопипастить из 1-ого рабочего и внимательнее перебить различия.. & возможно шлифануть diff`ом ?!

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от Gogol (ok), 30-Сен-19, 22:14 
> ...
>> Приведенный конфиг работает в 2-случаях и не работает в третьем. Они одинаковые
>> кроме имен, портов и путей к сертификатам. Имена резолвятся как надо,
>> на портах слушает, кто надо, сертификаты и пути к ним валидные.
>> В том-то и проблема :-)
> могетъ быть проблема в каком-либо символе из конфига в 3 - прокопипастить
> из 1-ого рабочего и внимательнее перебить различия.. & возможно шлифануть diff`ом
> ?!

Делал, не помогло. Более того, если в браузере тиснуть кнопочку "Назад", хостнейм становится нормальным, $request_uri сохраняется и дальше всё работает. Но непорядок же ж!

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от Gogol (ok), 30-Сен-19, 23:25 
>[оверквотинг удален]
>>> Приведенный конфиг работает в 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;
        }

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от Gogol (ok), 01-Окт-19, 15:58 
>> В двух из трёх случаев всё идет, как надо
> Не совсем по теме, но таки спрошу: можно работающие конфиги, а то
> у самого такая надобность проскакивала, и знаю что ещё понадобится, а
> маны читать лениво

Работающий для третьего случая конфиг (часть) в моём последнем посте.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

10. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от DiabloPC (ok), 02-Окт-19, 09:17 
Спасибо, уже увидел.
В закладки добавил, как дойдут руки до настройки всего этого - буду пользовать ;)
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

9. "Nginx как прокси и 3 виртуальникa Apache"  +/
Сообщение от abi (?), 01-Окт-19, 16:36 
Но при авторизации
> (php) на третьем хосте в браузер проваливается URL вида https://127.0.0.1:8082/$request_uri
> и соответсвенно, браузер получает фигу от локалхоста.

Думаю, генератор ссылок в софтине на третьем хосте не (везде) проверяет хедеры или требует ручного указания реального URL. Такое встречается.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру