同じドメインの異なるアプリはどのように構成されますか?

同じドメインの異なるアプリはどのように構成されますか?

私は新しい仕事に就いており、AWS 上にすべてがセットアップされています。多数のアプリケーションをホストしているテスト サーバーがあります。

もし私が

jenkins.example.com

実行中の Jenkins のインスタンスに送信されます。

もし私が

server.test.example.com

次に、アプリケーションのテスト バージョンに進みます。

これはどこで設定されていますか (異なる「サブドメイン」に対して異なるアプリ)? Nginx 内ですか、それとも DNS エントリ内ですか? あるいはその両方、あるいは他の場所ですか?

(「サブドメイン」など、この質問をするときに使用すべき用語が 100% はっきりしないので、遠慮なく教えてください)。

答え1

それはあなたが何をしたいかによります。

あなたが尋ねているのは、追加された DNS エントリではなく、おそらく Nginx が必要なことです。

CNAME DNS エントリは、特定のサブドメインを特定のドメインにリダイレクトできます (ただし、サーバー上の特定の IP アドレスまたはポートに直接リダイレクトすることはできません)。サブドメインをマッピングしてリクエストを別のドメイン名にリダイレクトする場合にのみ、CNAME が必要です (例: subdomain.exampleone.com は exampletwo.com を参照します)。

Nginx はリバース プロキシとして機能し、サブドメインを取得して、サーバー上の特定のフォルダー/ファイルまたはポートにリダイレクトします。これは、/etc/nginx/nginx.conf* から、http {...}ブロック内、または/etc/nginx/sites-enabled/ディレクトリ内で構成でき、リダイレクトごとに個別のファイルを作成できます (がhttp {...}暗黙的に示されています)。

*またはnginxディレクトリがある場所

このようなリダイレクト (特定のポートのアプリケーションへのリダイレクト) の適切な形式は/etc/nginx/nginx.conf次のようになります。

server {
    # whether you type localhost or 127.0.0.1 or something else here 
    # depends on your servers /etc/hosts file, where you define how 
    # the server refers to itself
    listen       localhost:80;  
    server_name  mysubdomain.example.com;

    location / {
     proxy_pass              http://localhost:MYPORTNUMBER
     proxy_set_header        Host            $host;
     proxy_set_header        X-Real-IP       $remote_addr;
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

ここで、MYPORTNUMBER をアプリケーションが実行されているポートに置き換えます。静的ファイルにリダイレクトするプロセスも同様ですが、proxy_pass の代わりに、 を実行しますroot /path/to/desired/folder

server.test.ourdomain.com特に試したわけではありませんが、これはあなたの例のような複数レベルのサブドメインでは機能するはずです。

関連情報