Назад | Перейти на главную страницу

Нужна ли директивам Proxypass директива ProxyPassReverse?

Все ли директивы ProxyPass нуждаются в директиве ProxyPassReverse?

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

Я видел этот фрагмент и понимаю, что весь трафик, идущий на foo.example.com проксируется на foo.example.com:8080. Что делает вторая строка?

Эта директива позволяет 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 (функциональность, которую предоставляет здесь ProxyPass). Он также заботится о перенаправлениях, которые отправляет сервер backend.example.com: когда http://backend.example.com/bar перенаправлен им на http://backend.example.com/quux Apache настраивает это на http://example.com/mirror/foo/quux перед пересылкой ответа HTTP-перенаправления клиенту. Обратите внимание, что имя хоста, используемое для создания URL-адреса, выбирается в соответствии с настройкой директивы UseCanonicalName.