Настройка mod_proxy на apache http server
Я хотел отменить прокси-сервер для веб-службы с моего сервера tomcat с помощью веб-сервера apache. Я изменил httpd.conf
LoadModule proxy_module modules/mod_proxy.so
<Directory />
AllowOverride none
Require all denied
</Directory>
ProxyPass /ROOT http://localhost:8080/ROOT
ProxyPassReverse /ROOT http://localhost:8080/ROOT
Мой сервер Tomcat работает на порту 8080, теперь, когда я запускаю localhost/ROOT, я получаю ошибку внутреннего сервера 500.
Эта последняя запись в error_log
:
[Thu Jul 04 14: 17: 00.097359 2013] [proxy: warn] [pid 18980: tid 4476780544] [клиент 127.0.0.1:50525] AH01144: Обработчик протокола не был действителен для URL/ROOT. Если вы используете версию mod_proxy DSO, убедитесь, что прокси-подмодули включены в конфигурацию с помощью LoadModule.
Последняя запись в
access_log
:
127.0.0.1 - - [04/Jul/2013: 14: 17: 00 -0400] "GET/ROOT HTTP/1.1" 500 528
Любая идея о том, что я делаю неправильно здесь?
Ответы
Ответ 1
Итак, это заняло некоторое время, но я понял, как это сделать. Существует еще один модуль, который необходимо загрузить. Это то, что httpd.conf выглядит как
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<Directory />
AllowOverride none
Require all denied
</Directory>
ProxyPass /ROOT http://localhost:8080/ROOT
ProxyPassReverse /ROOT http://localhost:8080/ROOT
Это работает точно.:)
Ответ 2
Так как легко пропустить, обратите внимание на комментарий @muka:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo service apache2 restart
Обязательно включите оба модуля proxy
и proxy_http
!
Ответ 3
В дополнение к другим тонким ответам, если вы проксимируете конечную точку https, вам необходимо включить mod_ssl и добавить SSLProxyEngine on
к вашему vhost