Apache-2.2

通過 Apache 設置從 https 到 http 的基本代理

  • January 14, 2015

我需要代理一些遠端 apihttps://example.com/api/

可在本地訪問http://localhost/api/

我試著把這條線放在httpd.conf

ProxyPass     /api/     https://example.com/api/

我檢查了這些模組是否已啟用:

ssl_module, proxy_module, proxy_http_module  

當我試圖到達http://localhost/api/時,我收到 500 Internal Server Error,我看到的error_log是:

[Wed Jan 14 16:42:04.788401 2015] [proxy:warn] [pid 21916] [client ::1:59260] AH01144: No protocol handler was valid for the URL /api/v1/ads. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.  

我的問題與這個問題有關:https ://stackoverflow.com/questions/1997001/setting-up-a-basic-web-proxy-in-apache 。實際上,當我嘗試代理 http 資源時,一切都對我有用,所以問題出在 SSL 附近。

我希望這個工作的原因是Access-Control-Allow-Origin我在本地使用遠端 api 時遇到的問題。


更新

這是整個 conf 文件。https://www.dropbox.com/s/mkrxna4h2o9yu8k/httpd.conf?dl=0

這應該是您所需要的:

RewriteEngine On
RewriteRule ^/api/(.*)$ https://example.com/api/$1 [P,QSA,L]

Apache 基本上會通過 mod_rewrite 模組創建新的 http 請求來代理您的請求,該模組預設啟用

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