通过 Apache 设置从 https 到 http 的基本代理

通过 Apache 设置从 https 到 http 的基本代理

我需要代理一些远程 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 内部服务器错误,我看到的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

答案1

这应该是你所需要的全部:

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

Apache 基本上会通过 mod_rewrite 模块创建新的 http 请求来代理你的请求,该模块默认启用

相关内容