當我啟動 Apache 2.2 伺服器時,為什麼會收到「無效命令‘ProxyPass’」錯誤?

當我啟動 Apache 2.2 伺服器時,為什麼會收到「無效命令‘ProxyPass’」錯誤?

我在 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

proxy_http模組需要代理人, 和代理通行證指令是在後者中定義的。

確保它也已加載。

感謝米林德·辛格

透過運行加載模組

Run sudo a2enmod proxy_http

相關內容