web-dev-qa-db-ja.com

サブドメインをlocalhost +ポート番号に再ルーティングするにはどうすればよいですか?

開発者のマシンでいくつかのWebアプリケーションを実行しています。これらは、サブドメインでホストされている本番ウェブアプリケーションを模倣しています。たとえば、次のことを考慮してください。

api.myserver.com - is mimicked by 127.0.0.1:8000     
www.myserver.com - is mimicked by 127.0.0.1:8008    
and so on...

Windows 7マシンで、「api.myserver.com」へのHTTP呼び出し(ポート番号がないことに注意)が127.0.0.1:8000などにリダイレクトされるようにするにはどうすればよいですか?これは、クライアント側の呼び出し(ブラウザー内)とサーバー側の呼び出し(IISからPython開発サーバーへ)およびその逆)の両方に適用する必要があることに注意してください。 )。

これを実現するには、ローカルで実行するプロキシが必要ですか?そのようなツールをお勧めできますか?

6
urig

実際、問題の解決策はポート変換よりもはるかに簡単です。

127.x.x.x IPブロック全体がローカルホストにルーティングされるため、このブロックで必要な任意のIPを使用して、各Webサイトにバインドできます。

たとえば、hostsファイルを編集してバインドします。

127.0.0.1    www.site.com
127.0.0.2    api.site.com
127.0.0.3    dev.site.com

IPアドレスにバインドするように各サイトを構成します。

IIS以外の他のサーバーを使用する必要があり、IISはポート80で使用可能なすべてのIPを蓄積する傾向があるため、これを完全に機能させるには、ソケットプーリングを無効にする必要があることに注意してください。

http://www.iislogs.com/steveschofield/iis7-post-44-iis7-and-Apache-on-the-same-machine

9
Variant

異なるポートではなく異なるホストヘッダーに応答するようにWebサイトを構成してから、hostsファイルを使用してこれらすべての名前を127.0.0.1にマップする必要があります。このようにして、Webブラウザに「www.myserver.com」または「api.myserver.com」と入力するだけで、正しいサイトが使用されます。

2
Massimo

Mod_proxyを備えたApacheはあなたが望むことをします。例:

<VirtualHost 127.0.0.1:80>
    ServerName api.myserver.com
    ProxyRequests On
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8000/
</VirtualHost>

必要なすべてのサブドメインに対して、このようなVirtualHost定義を定義します。

2
sborsky