私は新しい仕事に就いており、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
特に試したわけではありませんが、これはあなたの例のような複数レベルのサブドメインでは機能するはずです。