É possível ter vários níveis de subdomínio com DNS e Nginx?

3

Essa parece ser uma pergunta simples, mas depois de algumas pesquisas no Google, parece que não consigo encontrar a resposta.

Eu tenho um servidor de teste em que gostaria de imitar o servidor de produção o máximo possível. Digamos que eu possua example.com e decido que quero hospedar um blog usando blog.example.com . Gostaria de poder preparar o blog antes de enviá-lo para produção usando o endereço intermediário blog.stage.example.com . Eu prefiro fazer isso do que comprar outro domínio como stage-example.com ou usar convenções de nomenclatura como blog-stage.example.com .

Obviamente, gostaria que blog.stage.example.com apontasse para o servidor em execução no ambiente de preparação (por exemplo, IP 1.1.1.1) e blog.example.com para apontar para o servidor em execução no ambiente de produção (por exemplo, IP 2.2.2.2) .

Estou usando o Nginx para o back-end da Web e tenho o Gandi como provedor de hospedagem no qual gerencio meu arquivo de zona DNS.

É possível configurar meus nomes de domínio com subdomínios de vários níveis? Ou, estou preso a convenções de nomenclatura como blog-stage.example.com ? Ou talvez exista uma maneira melhor de gerenciar isso que eu não conheço?

Se for possível, como seria o arquivo de zona DNS?

E, finalmente, se for possível, como seria o arquivo de configuração do Nginx?

    
por Stephen Watkins 09.03.2012 / 02:59

3 respostas

1

A resposta correta vem de @ sysadmin1138 e @cjc:

Configuração do Nginx

Seus hosts virt nginx serão parecidos com isto:

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;

[...]

}

Isso pressupõe que você pode atribuir dois endereços IP ao seu servidor web. Com a configuração acima, um servidor virtual se ligará a 1.1.1.1:80 e responderá a blog.stage.example.com, e o outro servidor será vinculado a 2.2.2.2:80 e responderá a blog.example.com. A configuração do DNS dependerá de como o DNS é gerenciado, mas deve ser possível.

DNS

Subdomínios e hospedagem são um pouco indefinidos, e você é melhor servido perguntando se eles suportam algo assim. É bem possível definir um registro A com vários rótulos nele. Por exemplo, você pode colocar isso na sua zona DNS por example.com:

blog.stage             1.1.1.2
      blog             1.1.1.1

E isso pode funcionar. O Bind DNS suporta esse tipo de coisa, mas o fato de o seu provedor de hospedagem permitir ou não fazer isso é outra história inteiramente diferente.

Um plano melhor é usar algo além do blog.

betablog              1.1.1.2
    blog              1.1.1.1

Uma vez que é muito mais provável que seja suportado pelo seu fornecedor.

Eu não sou familiar o suficiente com o Nginx para fornecer vários exemplos de host virtual para isso.

    
por 09.03.2012 / 18:27
2

Subdomínios e hospedagem são um pouco indefinidos, e você é melhor servido perguntando se eles suportam algo assim. É bem possível definir um registro A com vários rótulos nele. Por exemplo, você pode colocar isso na sua zona DNS por example.com:

blog.stage             1.1.1.2
      blog             1.1.1.1

E isso pode funcionar. O Bind DNS suporta esse tipo de coisa, mas o fato de o seu provedor de hospedagem permitir ou não fazer isso é outra história inteiramente diferente.

Um plano melhor é usar algo além do blog.

betablog              1.1.1.2
    blog              1.1.1.1

Uma vez que é muito mais provável que seja suportado pelo seu fornecedor.

Eu não sou familiar o suficiente com o Nginx para fornecer vários exemplos de host virtual para isso.

    
por 09.03.2012 / 03:30
2

Seus hosts virt nginx serão parecidos com isto:

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;

[...]

}

Isso pressupõe que você pode atribuir dois endereços IP ao seu servidor web. Com a configuração acima, um servidor virtual se ligará a 1.1.1.1:80 e responderá a blog.stage.example.com, e o outro servidor será vinculado a 2.2.2.2:80 e responderá a blog.example.com. A configuração do DNS dependerá de como o DNS é gerenciado, mas deve ser possível.

    
por 09.03.2012 / 03:36