Ответ 1
ProxyPassReverse
используется для изменения заголовков, отправленных приложением (appcluster), в Apache, прежде чем Apache отправит браузер. Например, если приложение находится на http://localhost:9013/, и он пытается перенаправить браузер, скажем, /new_location/
, тогда он ответит с заголовком перенаправления и местоположения http://localhost:9013/new_location/, и Apache возьмет это и отправит его в браузер. Проблема в том, что браузер (предполагая это где-то в другом месте) пытается отправить запрос http://localhost:9013/new_location/ и получает сообщение об ошибке.
Что делает ProxyPassReverse, перехватывает эти заголовки и переписывает их так, чтобы они соответствовали тому, что похоже на сервер Apache, который выполняет проксирование. Поэтому, если мой сервер apache размещает http://myhost.com/, и у меня есть ProxyPass
, который указывает /
на http://localhost:9013/App, если приложение, сидящее на localhost: 9013, возвращает перенаправление на http://localhost:9013/App/new_location/, Мне нужно будет использовать ProxyPassReverse
, чтобы он переписывался в http://myhost.com/new_location/ от Apache до отправки запроса обратно в браузер.
Если вы не отправляете переадресацию, это не будет проблемой, но это не повредит, если вы вернете перенаправление 301/302. Что касается mod_rewrite, RewriteRule применяется к запросу, входящему в приложение, а не к приходу, поступающему из приложения. Таким образом, они являются взаимоисключающими событиями.