
Apache 2.2でプロキシが動作しない問題があります
起動しようとするとInvalid command 'ProxyPass'
エラーが発生します。これはロードされていないことを示していますproxy_http_module
。しかし、デバッグを見ると、そこにエラーがあるようです。例:
E:\Apache\bin>httpd -e debug
[Fri Aug 21 15:48:55 2015] [debug] mod_so.c(246): loaded module actions_module
...
[Fri Aug 21 15:48:55 2015] [debug] mod_so.c(246): loaded module proxy_ajp_module
[Fri Aug 21 15:48:55 2015] [debug] mod_so.c(246): loaded module proxy_http_module <-----
[Fri Aug 21 15:48:55 2015] [debug] mod_so.c(246): loaded module setenvif_module
....
[Fri Aug 21 15:48:55 2015] [debug] mod_so.c(246): loaded module jk_module
[Fri Aug 21 15:48:55 2015] [notice] Disabled use of AcceptEx() WinSock2 API
Syntax error on line 84 of E:/Apache/conf/extra/httpd-ssl.conf:
Invalid command 'ProxyPass', perhaps misspelled or defined by a module not included
in the server configuration
つまり、proxy_http_module がロードされているように見えます。なぜ ProxyPass が何であるかが分からないのか理解できません。
私は確かにhttpd.conf
ファイルでそれをオンにしました
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so # <--------------
#LoadModule rewrite_module modules/mod_rewrite.so
注: SSL接続を介してこれを実行しようとしているので、ファイルhttpd-ssl.conf
の後半でも同様にロードします。httpd.conf
<IfModule ssl_module>
Include conf/extra/httpd-ssl.conf
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
次にhttpd-ssl.conf
VirtualHostエントリを設定します
<VirtualHost _default_:443>
DocumentRoot "E:/Apache/htdocs"
### dummy IP
ServerName 127.12.34.56:443
ServerAdmin [email protected]
ErrorLog "E:/Apache/logs/error.log"
TransferLog "E:/Apache/logs/access.log"
#ProxyRequests Off
### It chokes on the following entry
ProxyPass / http://myfirewalledserver:80/
#ProxyPassReverse / http://myfirewalledserver:80/
</VirtualHost>
ここで何を見逃したのでしょうか?
答え1
プロキシ_httpモジュールにはプロキシ、 そしてプロキシパスディレクティブは後者で定義されます。
ロードされていることを確認してください。
ミリンド・シンに感謝
実行してモジュールをロードします
Run sudo a2enmod proxy_http