ApacheをDockerアプリのフロントエンドプロキシとして設定しようとしています。私は過去にこれを何度か行ったことがありますが、何らかの理由で、私が持っている新しいUbuntu VPSは協力していません。 Apache/2.4.18を使用しています。
私はこの仮想ホストを使用しています:
<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を使用した構成に含まれていることを確認してください。
この問題はWebで多く言及されていますが、アドバイスは基本的にエラーメッセージの内容を反映しています。つまり、プロキシモジュールがロードされていることを確認する必要があります。 100%読み込まれていることを確認できます。実際、vhost構成でLoadModule
コマンドを複製すると、モジュールが既に読み込まれているため、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
他にどのような問題が発生する可能性があるのかについて、私はむしろ行き詰まっています。問題をさらに調査することは簡単ではありません。検索エンジンの結果が、私の場合には当てはまらないように見える一般的な答えに溺れてしまうためです。
Httpプロトコルをプロキシできるようにするには、mod_proxy_http
をロードする必要があります。