2013-01-10 27 views
7

nginxサブドメインの設定については、いくつかの質問がありますが、私とまったく同じものは見つかりませんでした。仮想ホスト上のnginxサブドメイン設定

Googleの組織で上位レベルのネット管理者example.comから仮想ホストsome.example.comを取得したとします。 some.example.comをプライマリサイトに使用し、補助的な使用(プロキシなど)にfoo.some.example.combar.some.example.comを使用します。私はこの単純な設定を試してみましたsites-enabled下に置くが、うまくいきませんでした:

server { 
    listen 80; 
    server_name some.example.com; 
    root /home/me/public_html/some; 
    index index.html index.htm; 
} 

server { 
    listen 80; 
    server_name foo.some.example.com; 
    root /home/me/public_html/foo; 
    index index.html index.htm; 
} 

server { 
    listen 80; 
    server_name bar.some.example.com; 
    root /home/me/public_html/bar; 
    index index.html index.htm; 
} 

を正常に動作some.example.comこの設定では、しかしcould not find foo.some.example.com、他の2つのブラウザの復帰のために。私はubuntuサーバー上で実行しています。

この設定に問題がありますか?それとも、私は上位レベルのネット管理者と話すべきですか(foo.some.example.combar.some.example.comを登録してください)?

答えて

11

サブドメインのコンフィグレーションは、親ドメインのDNSサーバのエントリで始まり、ルックアップによってサブドメインがWebサーバのIPアドレスに解決されます。 Webサーバーは、次に、サブドメインの構成に基づいて要求を委任します。

サブドメインにDNS設定がない場合、example.comの管理者はCNAMEエイリアスを設定する必要があります。エイリアスは、サブドメインを親ドメインのWebサイトをホストする同じWebサーバーにポイントします。正式名(CNAMES)は、各サブドメインに対して追加されます。サブドメインがWebサーバーのIPアドレスに解決されると、Webサーバーは要求を別のWebサイトにルーティングできます。

+0

返信いただきありがとうございます。だから私は2つのオプションがあります:1) 'some.example.com'に自分のDNSを構築する2)' example.com'の管理者に2つのサブドメインに 'CNAME'を追加するように頼みますか?後者の場合は、サブドメインを追加するたびに管理者に 'example.com'に問い合わせる必要があります。 – clwen

+1

はい - 正しいです。別のDNSの代わりに、すべてのDNS要求はexample.comのDNSサーバーに送られます。 –

+0

DNSサーバーを自分でセットアップする場合は、例の3つのドメインをすべて同じIPにすることができます。nginxは、使用する "サーバー"(親またはfooまたはbar)を特定します。 – clwen

0

CNAMEは、あなたのIPアドレスにウェブトラフィックを取得するための単なる方法です。 要求には依然としてHost:ヘッダーに元の名前が含まれます。

関連する問題