+ Responder ao Tópico



  1. #1

    Padrão Apache vs. DNS

    Eae pessoal...tudo beleza?

    Bom galera...seguinte:

    Tenho uma dúvida ultra cruel por ainda ser "novato" em Linux.
    E esta é a máxima:

    Todo mundo que mexe, sabe que domínio se consiste em zonas controladas por alguém que pode subdividí-las e delegá-las a mais alguém.
    Portanto, quando utilizamos o navegador para acessar uma página hospedada em um determinado domínio, temos que apontar a localização de seu host hospedeiro (por padrão, www) seguido de seu domínio (por exemplo, site.com.br).

    Até aí, beleza. É só escrever no arquivo do DNS que o www de site.com.br é o host 192.168.0.100 (sendo que 192.168.0.100 tem o Apache instalado, tudo certinho e bonitinho) para que a página possa ser exibida sem maiores problemas.

    Bom...aí tem os famosos subdomínios de host (que, para os endereços de sites, é chamado de hot-sites). Por exemplo, o endereço esportes.site.com.br aponta e acessa os arquivos do endereço www.site.com.br/esportes.

    Bingo!
    Está aí a minha dúvida.
    Como que o servidor sabe que o esportes.site.com.br é na verdade www.site.com.br/esportes e não a máquina 192.168.0.200?
    Quem faz isso? DNS ou Apache?
    Isso que é o Virtual Host do Apache?
    O DNS não entra em conflito com o Apache por isso e vice-versa?

    Bom...sei que é meio confuso mas tentei explicar da melhor maneira possível.
    Já tentei entender mas tá complicado.

    Desde já, agradeço pela atenção.

    abracos

  2. #2

    Padrão

    Como que o servidor sabe que o esportes.site.com.br é na verdade www.site.com.br/esportes e não a máquina 192.168.0.200?

    Quem faz isso? DNS ou Apache?
    Isso o DNS faz.

    Isso que é o Virtual Host do Apache?
    Exatamente.

    O DNS não entra em conflito com o Apache por isso e vice-versa?
    Não, eles nao brigam, eles se amam e vivem juntos, sao quase casados.

  3. #3

    Padrão

    Não perae...agora bagunçou mais a minha cabeça.

    Como que o DNS faz o servidor interpretar que esportes.site.com.br é na verdade www.site.com.br sendo que isso é um Virtual Host do Apache?

    Por favor, me explique.

  4. #4

    Padrão

    Assim:

    # nslookup esportes.sites.com.br
    esportes.site.com.br canonical name = www.site.com.br.
    Name: www.site.com.br
    Address: 192.168.1.15


    Daí quando chegar no apache ele vai verificar o virtual host, e então enviará o usuario para o lugar certo ao inves de www.site.com.br.

    Recomendo voce a ler algum livro de DNS e depois estudar o Apache, visto que entender DNS é o basico para a infraestrutura para depois configurar os vhosts do Apache.

  5. #5

    Padrão

    Agradeço as recomendações mas, antes de questionar aqui sobre isso, me alimentei destas informações.

    E eu acho que nós ainda não conseguimos falar a mesma língua.

    Por exemplo.
    Quem que "conta" pro servidor que esporte não é um host e sim um VirtualHost?

  6. #6

    Padrão

    Okay, pelo que deu para perceber tu deste uma estudada no assunto mas embaralhou tudo.... vou tentar detalhar sem entrar muito no como funciona tecnicamente.


    O DNS serve para resolver nomes para endereços IPs, correto? Apartir disso sabemos que nosso servidor de web tem o ip 192.168.1.15, mas nao queremos que nossos clientes sempre usem esse endereço certo? Ok entao configuramos o dns para apontar o registro www.site.com.br para o endereço ip em questão. Entendido isso vamos para a segunda parte.

    Voce quer que seus usuarios acessem uma determinada pasta que é /esportes no seu servidor de Web, mas como os usuarios querem moleza e nao querem lembrar que o site é www.site.com.br/esportes você entao configura um novo registro no seu DNS, esportes.site.com.br que vai apontar para o seu servidor de Web, que é o IP 192.168.1.15. Fechado vamos a terceira parte.

    Se voce simplesmente fizer isso nao vai funcionar, ai que entra o vhosts do Apache, então voce vai la no apache é vai configurar que o vhost "esportes.site.com.br" vai cair na pasta /esportes (já que esta subentedido que o www.site.com.br esta´ na pasta /) entendido isso? Então como é que o cliente vai para o site correto? Quando o ususario acessa esportes.site.com.br o servidor Apache vai puxar o conteudo da pasta configurada, e quando ele acessa o www.site.com.br ele acessa o conteudo da pasta configurada para esse site. Entendeu o funcionamento da coisa?

  7. #7

    Padrão

    Ah sim...então nesse caso tanto DNS quando Apache formam conjunto.

    Quando eu vi isso pela primeira vez, foi no CPanel.

    Por lá você configura os hot-sites.

    Mas meu medo era que se eu tivesse um esporte.site.com.br no meu apache e alguém cria-se um esporte.site.com.br apontando para um outro IP, isso gera-se um conflito. Mas dessa forma, não tem como criar dois registros de esporte.site.com.br.

    Bom...deixa eu ver se eu entendi.

    www IN A 192.168.1.15
    esporte IN A 192.168.1.15
    turismo IN A 192.168.1.15

    Assim ficaria no DNS para apontar para as máquinas.
    E no httpd.conf as configurações do VirtualHost.

    E então, quando um endereço é acessado pelo navegador, o apache lê primeiro os registros dos VirtualHosts para ver se aquele endereço é um host virtual e assim chamar sua pasta para que, se não for um host virtual, ele chamar a pasta raiz (ou padrão).

    É isso?

  8. #8

    Padrão

    Citação Postado originalmente por Frusciante Ver Post

    Mas meu medo era que se eu tivesse um esporte.site.com.br no meu apache e alguém cria-se um esporte.site.com.br apontando para um outro IP, isso gera-se um conflito. Mas dessa forma, não tem como criar dois registros de esporte.site.com.br.
    Sim, nao tem como gerar o conflito porque afinal "quem manda" no seu domino é voce, entao nao tem como alguem criar um registro "duplicado".

    Bom...deixa eu ver se eu entendi.

    www IN A 192.168.1.15
    esporte IN A 192.168.1.15
    turismo IN A 192.168.1.15

    Assim ficaria no DNS para apontar para as máquinas.
    Exatamente, mais eu prefereria criar somente um registro do tipo A e resto do tipo CNAME que é o correto a se fazer segundo a RFC (nao to dizendo que o acime nao funcione, eu so prefiro fazer:

    www IN A 192.168.1.15
    esporte IN CNAME www


    E no httpd.conf as configurações do VirtualHost.

    E então, quando um endereço é acessado pelo navegador, o apache lê primeiro os registros dos VirtualHosts para ver se aquele endereço é um host virtual e assim chamar sua pasta para que, se não for um host virtual, ele chamar a pasta raiz (ou padrão).

    É isso?
    Sim, basicamente é isso, so que na realidade tudo é vhost, entretanto se nao tiver um vhost configurado ele cairia no site padrão.

  9. #9

    Padrão

    e onde foi que voce obteve todas as informacoes?

    Pela documentacao que acompanha o Apache?

  10. #10

    Padrão

    Sim, a documentação sobre vhosts foi sim da documentação do Apache.

    Já sobre o HTTP foi Apache+RFC, valendo o mesmo para o DNS onde tem o proprio manual e mai as RFCs

  11. #11

    Padrão

    Bom...independente disso tudo...
    Quero te agradecer pelo tempo disponibilizado e pela paciência de me ajudar...

    Muito obrigado mesmo.

  12. #12

    Thumbs up

    Não há de que amigo é que eu sou meio brabo assim mesmo