/etc/hosts内のポートを使用したホスト名のマッピング
1. 概要
Linuxでは、 / etc / hosts は、オペレーティングシステムがホスト名をIPアドレスに変換するために使用するファイルです。 「hosts」ファイルとも呼ばれます。 このファイルに行を追加することで、任意のホスト名を任意のIPアドレスにマップできます。これを使用して、Webサイトをローカルでテストできます。
このチュートリアルでは、ホスト名を特定のポートにマッピングすることで、これをさらに一歩進める方法を見ていきます。
2. hostsファイル
まず、例を見てみましょう。 baeldung.comを127.0.0.1にマップする必要があると仮定して、次の行を / etc /hostsに追加します。
127.0.0.1 baeldung.com
これで、サイトにアクセスするたびに、OSがブラウザにローカルホストにアクセスするように指示します。
3. ポート番号の追加
ほとんどのWeb開発者は、たとえばポート8080を使用してローカルでテストする方法を採用しています。 / etc /hostsでもこれを達成できるのではないかと思うかもしれません。 たとえば、hostsファイルに次の行を追加できますか。
127.0.0.1:8080 baeldung.com
残念ながら、できません。 hosts ファイルはホスト名のみを扱い、ポートは扱いません。
4. リバースプロキシの使用
それを機能させるために、リバースプロキシを使用できます。 リバースプロキシは通常、NginxのようなWebサーバーであり、クライアントの要求を受け取り、適切なバックエンドサーバーに転送します。 これらのバックエンドサーバーは、別のホストで実行でき、さらに興味深いことに、別のポートで実行できます。
Nginxでこれを構成する方法を見てみましょう。 yumやapt-getなどのパッケージマネージャーからnginxを簡単にインストールできます。 デフォルトのインストールフォルダは/etc /nginxです。
baeldung.com のリバースプロキシを構成するには、/etc/nginx/conf.d/baeldung.confというファイルに以下を追加します。
server {
listen 80;
server_name baeldung.com;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
この構成を次のものと一緒に使用する場合:
127.0.0.1 baeldung.com
/ etc / hosts では、nginxがbaeldung.comのリクエストを受信し、
5. 結論
ホスト名を/etc / hosts のIPアドレスにマッピングすると、テストの目的で非常に役立ちます。 残念ながら、この方法ではポート番号を含むホスト名をマップすることはできません。
nginx を使用してリバースプロキシを構成することにより、この問題を解決する方法を示しました。