The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
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, !*! 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. Такое встречается.





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

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