Я пытаюсь настроить Apache в качестве внешнего прокси для приложения Docker. Я делал это несколько раз в прошлом, но по какой-то причине мой новый Ubuntu VPS не работает. Я использую Apache / 2.4.18.
Я использую этот vhost:
<VirtualHost *:80>
ServerName blog.example.com
ProxyPass / http://127.0.0.1:8083/
ProxyPassReverse / http://127.0.0.1:8083/
</VirtualHost>
Я включил необходимые модули:
a2enmod proxy
a2enmod proxy_html
a2enmod xml2enc
Apache запускается нормально, но я получаю эту ошибку в журналах, а также стандартное сообщение о сбое 500 в браузере:
AH01144: Обработчик протокола не действителен для URL /. Если вы используете DSO-версию mod_proxy, убедитесь, что подмодули прокси включены в конфигурацию с помощью LoadModule.
Эта проблема часто упоминается в Интернете, но совет в основном отражает содержание сообщения об ошибке, а именно, что мне нужно обеспечить загрузку модулей прокси. Я могу подтвердить, что они загружены на 100% - фактически, если я воспроизведу LoadModule
в моей конфигурации vhost, Apache не запускается, потому что модули уже загружены.
Они тоже выглядят загруженными отсюда:
$ apachectl -M | grep proxy
proxy_module (shared)
proxy_html_module (shared)
Я могу подтвердить, что приложение Docker обслуживает HTTP-ответ (в любом случае, я не думаю, что до этого дойдет):
root@agnes:~# wget localhost:8083
--2018-04-02 19:04:46-- http://localhost:8083/
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:8083... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7 [text/html]
Saving to: ‘index.html’
index.html 100%[=========================================================================================================================================>] 7 --.-KB/s in 0s
2018-04-02 19:04:46 (1.20 MB/s) - ‘index.html’ saved [7/7]
root@agnes:~# cat index.html
Hello
Я довольно застрял в том, какие еще проблемы у меня могут быть. Дальнейшее исследование проблемы не является тривиальным, поскольку результаты поисковой системы заглушаются общим ответом, который, похоже, неприменим в моем случае.
Вам нужно загрузить mod_proxy_http
чтобы иметь возможность проксировать протокол http.