Symfony за обратным прокси - PullRequest
       24

Symfony за обратным прокси

0 голосов
/ 10 октября 2018

У нас есть частная сеть, в которой наши приложения установлены на виртуальном хосте Apache, например:

http://extranet.domain.com или http://calendar.domain.com

Все работает нормально.Теперь нам нужно сделать одно из этих приложений доступным за пределами нашей сети.

Наш единственный компьютер с открытым доступом - это сервер zimbra (mail) ... на котором я пытался настроить обратный прокси, но он не работает... Я добавил это к /etc/nginx/sites-enabled/default

location /extranet/ {
   proxy_pass http://extranet.domain.com/;
   proxy_http_version 1.1;
   proxy_set_header Accept-Encoding "";
   proxy_set_header   X-Real-IP $remote_addr;
   proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
}

Если я попробую внешний URL-адрес из внешней сети, например, так:

http://zimbra.externaldomain.com/extranet/login

Я могу перейти на страницу входа и войтино после перенаправления он теряет часть URL-адреса экстрасети, поэтому он никуда не денется ... где я получил

http://zimbra.externaldomain.com/home

Вместо

http://zimbra.externaldomain.com/extranet/home

Любая помощь или подсказка?

1 Ответ

0 голосов
/ 10 октября 2018

Остерегайтесь косой черты: proxy_pass http://extranet.domain.com/;, это действительный URI.Поэтому nginx заменит ваш совпавший запрос следующим.

Если ваше совпавшее местоположение равно /extranet/, и вы передаете его с URI, например /extranet/someurl, проход прокси nginx заменит совмещенное местоположение своим собственнымURI, в вашем случае /.

Итак, маршрут /extranet/someurl станет /someurl.

Для справки

...