Como são configurados diferentes aplicativos no mesmo domínio?

Como são configurados diferentes aplicativos no mesmo domínio?

Tenho um novo emprego e eles têm tudo configurado na AWS. Temos um servidor de teste que hospeda vários aplicativos.

se eu for

jenkins.example.com

vai para a instância do Jenkins que estamos executando.

se eu for

server.test.example.com

Em seguida, vai para a versão de teste do nosso aplicativo.

Onde isso está configurado (aplicativos diferentes para "subdomínios" diferentes)? Está no Nginx ou nas entradas DNS? Ou ambos ou em outro lugar?

(Não tenho 100% de certeza dos termos que deveria usar para fazer esta pergunta, como "subdomínios", fique à vontade para me dizer quais são).

Responder1

Depende do que você quer fazer.

O que você está perguntando provavelmente requer Nginx em vez de entradas DNS adicionadas.

As entradas DNS CNAME podem redirecionar determinados subdomínios para um determinado domínio (mas não diretamente para um endereço IP específico ou porta em um servidor). Você só precisa de um CNAME se estiver mapeando um subdomínio e redirecionando a solicitação para um nome de domínio diferente (ou seja, subdomínio.exampleone.com refere-se a exampletwo.com).

O Nginx pode atuar como um proxy reverso, pegando subdomínios e redirecionando-os para uma pasta/arquivos ou porta específica em seu servidor. Isso pode ser configurado a partir do seu /etc/nginx/nginx.conf*, dentro do http {...}bloco ou no /etc/nginx/sites-enabled/diretório, onde você pode criar um arquivo separado para cada redirecionamento (onde http {...}está implícito).

*ou onde quer que seu diretório nginx esteja localizado

O formato adequado para tal redirecionamento (para um aplicativo em uma porta específica) /etc/nginx/nginx.confé assim:

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;
   }
}

Onde você substitui MYPORTNUMBER pela porta em que o aplicativo está sendo executado. O processo de redirecionamento para arquivos estáticos é semelhante, mas em vez de proxy_pass, você faria root /path/to/desired/folder.

Não tentei especificamente, mas deve funcionar para subdomínios de vários níveis, como o server.test.ourdomain.comdo seu exemplo.

informação relacionada