Windows hosts ファイルを構成して、IPアドレス+ポートに基づいてホスト要求を送信したいと思います。
例えば:
127.0.0.1:80 www.site1.com
127.0.0.1:8080 www.sitetwo.com
ポート8080でリッスンしているApacheと、ポート80でIIS=(デフォルト))があるためです。
したがって、これを行うための最良の方法は、hosts
ファイルを変更することです。何にも影響はありません。エラーもメッセージも表示されません。
できません。 hostsファイルはそれだけです-hosts。これは、ローカルマシン内の「短絡」DNSに相当します。 DNSもポートに送信できません。
あなたがやろうとしていることを達成するために、IISまたはApacheの下に仮想ホスティングをセットアップし、それを(HTTP Host:ヘッダーに基づいて)使用して、サービスにどちらを決定させるかただし、IISとApacheの両方で同時にこれを実行する場合は、これは役に立ちません。
hosts
ファイルは、ホスト名解決専用です<hostname>:<port>
、defaultsポート80
へ127.0.0.1
aka localhost
(hostsファイルで定義)。おそらく他の既存/実行中のサーバー間の衝突を回避するために、アプリケーションでは通常、IPアドレスではなくポートを変更できます。
2a。 Ifloopback reserved address space127.0.0.0/8
でサーバーのIPアドレスを別のIPアドレスに変更できます、それからあなたはおそらくhostsファイルでポートを設定しようとしないでしょう。
これを回避するには、Windowsを含むネットワークツールnetsh
ポートプロキシとして。
example.app
| <--browser defaults to port 80
+--> example.app:80
| <--Hostname resolution by Hosts File
+--> 127.65.43.21:80
| <--Link by netsh Utility
+--> 127.0.0.1:8081
localhost:8081
でサーバーを起動します127.65.43.21 example.app
127.0.0.0/8
内の任意の空きアドレスを使用できます。127.65.43.21:80
が別のサービスによって占有されていないことを前提としています。netstat -a -n -p TCP | grep "LISTENING"
で確認できますnetsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
のサーバーにアクセスします注:
-これらのコマンド/ファイルの変更は、管理者権限で実行する必要があります
- netsh portproxyはipv6ライブラリが必要です v4tov4を使用する場合でも、通常はデフォルトで含まれます。それ以外の場合は、次のコマンドを使用してインストールします:netsh interface ipv6 install
次のコマンドで追加したエントリを表示できます:
netsh interface portproxy show v4tov4
次のコマンドを使用して、エントリを削除できます:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
いいえ、できません。それが機能しない場合は、他の問題が発生しています。
127.0.0.1 site.com
127.0.0.1 www.site.com
これは開発ボックス用だと思いますか?
DNSクエリのプロキシなどを行わない限り、DNSはsite.comとwww.site.comをlocalhostに解決します。おそらくServerFaultでWebサーバー構成のヘルプを依頼する必要があります。これが最も可能性の高い問題です。
Fiddler でそれを行うことができます。 Fiddlerスクリプト を使用すると、多くの驚くべきことができます。
このようにホストを設定すると
127.0.0.1 www.site1.com # Port 80
127.0.0.1 www.sitetwo.com # Port 8080
これをCustomRules.js(CustomRules.jsを開くには、Customize RulesFiddlerのRulesメニュー)
// this method is already exist
static function OnBeforeRequest(oSession: Session) {
if (oSession.Host.toLowerCase() == "www.sitetwo.com")
oSession.Host = "www.sitetwo.com:8080";
...
}
次にFiddlerがホストを変換し、ポート8080に接続します。
サーバーをローカル開発にのみ使用していますか?その場合は、Apacheを127.0.0.2:80をリッスンし、hostsファイルを使用して、希望するドメイン名にリダイレクトできます。
他の回答と同様に、ホストファイルにはポート情報がありませんが、ApacheまたはIISは名前ベースの仮想ホスティングに使用します。必要に応じてリダイレクトします。ただし、ホイールを再発明しているため、この値は実際にはわかりません。Apacheはポートベースの仮想ホスティングをサポートしており、iisがサポートしていると思います。
両方を実行する開発マシンを用意することが目標ですが、これは本番環境用です。
次の手順を実行します:
Install Fiddler2
Navigate to Fiddler2 menu:- Tools > HOSTS.. (Click to select)
Add a line like this:-
localhost:8080 www.mydomainname.com
Save the file & then checkout www.mydomainname.com in browser.
https://stackoverflow.com/questions/8652948/using-port-number-on-windows-xp-Host-file