私はlocalhost 3280で実行されているWebサービスを持っています。/some/long/url
localhostのポート3000でElasticsearchにアクセスしたいです。
ポート転送、ミラーリング、プロキシを介してこれを実行できますか?最良の方法は何ですか?
編集:サービスが3280で実行されており、ダウンした3000でアクセスしたいことを意味します。
ベストアンサー1
2つの異なる場所(iptablesとapache)を維持する必要があり、localhost:3280にアクセスできないという副作用があるslmの答えと比較して、結果を得るためにApacheのみを使用します。これは/on 3000を介してElasticSearchを提供します(ユーザーをlocalhost:3280/some/long/urlに「リダイレクトする」代わりに - ブラウザに表示されるURLを変更します)。このソリューションは手順4と7を一度に処理します(#7のアプリケーションはレベル#4の別のIPにトラフィックをリダイレクトできます)。
すでにmod_proxy
Apacheをロードしている場合は、ポート3000を変更できます(仮想ホスト宣言で127.0.0.1の代わりに<VirtualHost>
使用されると仮定します)。*
<VirtualHost *:3000>
.
.
.
RewriteEngine On
ProxyPass / http://127.0.0.1:3280/some/long/url
ProxyPassReverse / http://127.0.0.1:3280/some/long/url
</VirtualHost>
編集する:ルールを3000に変更し、Proxypassを3280に変更し、slm提案との違いを明確にし、ProxyPassで127.0.0.1変更のポイントを削除します(仮想ホストフラグメントが元の質問で要求されたものとまったく同じであるため)。
引用:
仮想ホストディレクティブのApacheドキュメント そして ProxyPass ディレクティブの Apache ドキュメントです。