web-dev-qa-db-ja.com

DNSとNginxで複数のサブドメインレベルを持つことは可能ですか?

これは簡単な質問のように思えますが、Googleで検索した後、答えが見つからないようです。

実稼働サーバーを可能な限り模倣したいステージングサーバーがあります。私がexample.comを所有していて、blog.example.comを使用してブログをホストすることにしたとします。ステージングアドレスblog.stage.example.comを使用してブログを本番環境にプッシュする前に、ブログをステージングできるようにしたいと思います。 stage-example.comなどの別のドメインを購入したり、blog-stage.example.comなどの命名規則を使用したりするよりも、これを行います。

明らかに、ステージング環境(IP 1.1.1.1など)で実行されているサーバーをblog.stage.example.comにポイントさせ、本番環境(IP 2.2.2.2など)で実行されているサーバーをblog.example.comにポイントさせたいと思います。 )。

WebバックエンドにNginxを使用しており、DNSゾーンファイルを管理するホスティングプロバイダーとしてGandiを使用しています。

マルチレベルのサブドメインでドメイン名を構成することは可能ですか?または、blog-stage.example.comのような命名規則に固執していますか?または、おそらく私が知らないこれを管理するためのより良い方法がありますか?

可能であれば、DNSゾーンファイルはどのようになりますか?

そして最後に、可能であれば、Nginx構成ファイルはどのようになりますか?

5
Stephen Watkins

正しい答えは@ sysadmin1138と@cjcにあります。

Nginx設定

Nginxvirtホストは次のようになります。

server {
  listen 1.1.1.1:80;
  server_name blog.stage.example.com;

[...]

}

server {
  listen 2.2.2.2:80;
  server_name blog.example.com;

[...]

}

これは、Webサーバーに2つのIPアドレスを割り当てることができることを前提としています。上記の構成では、1つの仮想サーバーが1.1.1.1:80にバインドしてblog.stage.example.comに応答し、もう1つのサーバーが2.2.2.2:80にバインドしてblog.example.comに応答します。 DNSの設定は、DNSの管理方法によって異なりますが、実行可能でなければなりません。

[〜#〜] dns [〜#〜]

サブドメインとホスティングは少し未定義なので、それらがそのようなものをサポートしているかどうかを尋ねるのが最善です。複数のラベルを含むAレコードを定義することはかなり可能です。たとえば、これをexample.comのDNSゾーンに配置できます。

blog.stage             1.1.1.2
      blog             1.1.1.1

そしてそれはうまくいくかもしれません。 Bind DNSはそのようなことをサポートしますが、ホスティングプロバイダーがそれを許可するかどうかはまったく別の話です。

より良い計画は、ブログ以外のものを使用することです。

betablog              1.1.1.2
    blog              1.1.1.1

それはあなたのプロバイダーによってサポートされる可能性がはるかに高いからです。

Nginxを十分に理解していないため、複数の仮想ホストの例を提供できません。

2
Stephen Watkins

Nginxvirtホストは次のようになります。

server {
  listen 1.1.1.1:80;
  server_name blog.stage.example.com;

[...]

}

server {
  listen 2.2.2.2:80;
  server_name blog.example.com;

[...]

}

これは、Webサーバーに2つのIPアドレスを割り当てることができることを前提としています。上記の構成では、一方の仮想サーバーは1.1.1.1:80にバインドしてblog.stage.example.comに応答し、もう一方のサーバーは2.2.2.2:80にバインドしてblog.example.comに応答します。 DNSの設定は、DNSの管理方法によって異なりますが、実行可能である必要があります。

3
cjc

サブドメインとホスティングは少し未定義なので、それらがそのようなものをサポートしているかどうかを尋ねるのが最善です。複数のラベルを含むAレコードを定義することはかなり可能です。たとえば、example.comのDNSゾーンにこれを配置できます。

blog.stage             1.1.1.2
      blog             1.1.1.1

そしてそれはうまくいくかもしれません。 Bind DNSはそのようなことをサポートしますが、ホスティングプロバイダーがそれを許可するかどうかはまったく別の話です。

より良い計画は、ブログ以外のものを使用することです。

betablog              1.1.1.2
    blog              1.1.1.1

それはあなたのプロバイダーによってサポートされる可能性がはるかに高いからです。

私はNginxに精通していないため、そのための複数の仮想ホストの例を提供できません。

2
sysadmin1138