为什么在启动 Apache 2.2 服务器时会收到“无效命令 'ProxyPass'”错误?

BIB*_*IBD 21 proxy proxypass apache-2.2

我在 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
Run Code Online (Sandbox Code Playgroud)

所以在我看来,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
Run Code Online (Sandbox Code Playgroud)

注意:我正在尝试通过 SSL 连接执行此操作,因此httpd-ssl.conf稍后我也会在我的httpd.conf文件中加载

<IfModule ssl_module>
Include conf/extra/httpd-ssl.conf
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
Run Code Online (Sandbox Code Playgroud)

然后在httpd-ssl.conf我设置了一个 VirtualHost 条目

<VirtualHost _default_:443>
    DocumentRoot "E:/Apache/htdocs"
### dummy IP
    ServerName 127.12.34.56:443
    ServerAdmin me@example.com
    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>                                  
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

sam*_*usz 25

proxy_http模块需要proxy,而ProxyPass指令在后者中定义。确保它也已加载。

  • 运行`sudo a2enmod proxy_http` (16认同)