1. 概要

Linuxでは、 / etc / hosts は、オペレーティングシステムがホスト名をIPアドレスに変換するために使用するファイルです。 「hosts」ファイルとも呼ばれます。 このファイルに行を追加することで、任意のホスト名を任意のIPアドレスにマップできます。これを使用して、Webサイトをローカルでテストできます。

このチュートリアルでは、ホスト名を特定のポートにマッピングすることで、これをさらに一歩進める方法を見ていきます。

2. hostsファイル

まず、例を見てみましょう。 baeldung.com127.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 では、nginxbaeldung.comのリクエストを受信し、 127.0.0.1:8080[で実行されているウェブサーバーに転送します。 X154X]。

5. 結論

ホスト名を/etc / hosts のIPアドレスにマッピングすると、テストの目的で非常に役立ちます。 残念ながら、この方法ではポート番号を含むホスト名をマップすることはできません。

nginx を使用してリバースプロキシを構成することにより、この問題を解決する方法を示しました。