Apache-2.2

為什麼我在啟動 Apache 2.2 伺服器時收到“無效命令 ‘ProxyPass’”錯 誤?

  • December 12, 2021

我無法讓代理在 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 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>                                  

我在這裡錯過了什麼?

proxy_http模組需要proxy,而ProxyPass指令在後者中定義。

確保它也已載入。

感謝米林德辛格

通過執行載入模組

Run sudo a2enmod proxy_http

引用自:https://serverfault.com/questions/715905