![为什么当我启动 Apache 2.2 服务器时会出现“无效命令‘ProxyPass’”错误?](https://linux22.com/image/665197/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BD%93%E6%88%91%E5%90%AF%E5%8A%A8%20Apache%202.2%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%E4%BC%9A%E5%87%BA%E7%8E%B0%E2%80%9C%E6%97%A0%E6%95%88%E5%91%BD%E4%BB%A4%E2%80%98ProxyPass%E2%80%99%E2%80%9D%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我在 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
httpd-ssl.conf
注意:我尝试通过 SSL 连接执行此操作,以便稍后在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模块需要代理人, 和代理通行证指令在后者中定义。
确保它也已被加载。
感谢 Milind Singh
通过运行加载模块
Run sudo a2enmod proxy_http