Чи потрібні директиви Proxypass щодо директиви ProxyPassReverse?


20

Чи всі директиви ProxyPass потребують директиви ProxyPassReverse?

ProxyPass / http://foo.example.com:8080/  
ProxyPassReverse / http://www.example.com/

Я побачив цей фрагмент і зрозумів, що весь трафік, який надходить, foo.example.comпов'язаний з foo.example.com:8080. Що робить другий рядок?

Відповіді:


15

Ця директива дозволяє Apache коригувати URL-адресу в заголовках Location, Content-Location та URI для відповідей на переадресацію HTTP .

Наприклад, припустимо, що локальний сервер має адресу http://example.com/ ; потім

ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookieDomain backend.example.com public.example.com
ProxyPassReverseCookiePath / /mirror/foo/

не лише спричинить локальний запит про те, що http://example.com/mirror/foo/bar буде внутрішньо перетворений у проксі-сервер до http://backend.example.com/bar (функціональний проксі ProassPass надається тут). Він також піклується про переадресацію сервера backend.example.com, який надсилає: коли http://backend.example.com/bar перенаправляється ним на http://backend.example.com/quux Apache, налаштовує це на http: / /example.com/mirror/foo/quux перед тим, як переслати відповідь про переадресацію HTTP клієнту. Зауважте, що ім'я хоста, що використовується для побудови URL-адреси, вибрано стосовно налаштування UseCanonicalName директиви.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.