web-dev-qa-db-ja.com

Apacheを介してhttpsからhttpへの基本的なプロキシを設定する

リモートAPIをプロキシする必要がありますhttps://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のどこかにあります。

これを機能させたい理由は、リモートAPIをローカルで操作するときに発生するAccess-Control-Allow-Originの問題です。


更新

これがconfファイル全体です。 https://www.dropbox.com/s/mkrxna4h2o9yu8k/httpd.conf?dl=

2
Dan

必要なのはこれだけです。

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

Apacheは基本的に、デフォルトで有効になっているmod_rewriteモジュールを介して新しいhttpリクエストを作成することにより、リクエストをプロキシします。

1
Garreth McDaid