web-dev-qa-db-ja.com

mod_proxyが「No protocol handler was was valid」エラーを出力した理由をデバッグする方法は?

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

他にどのような問題が発生する可能性があるのか​​について、私はむしろ行き詰まっています。問題をさらに調査することは簡単ではありません。検索エンジンの結果が、私の場合には当てはまらないように見える一般的な答えに溺れてしまうためです。

3
halfer

Httpプロトコルをプロキシできるようにするには、mod_proxy_httpをロードする必要があります。

2
vick