DEV Community

Matheus Almeida
Matheus Almeida

Posted on

Nginx : 2 domínios (dns) no mesmo servidor

NGINX

Esses dias eu estava aprendendo a mexer no meu droplet no DigitalOcean, que consegui com o Github Student Pack, e fiquei pensando como que eu conseguiria fazer para rodar dois sites, ou mais,no mesmo droplet. Pensei assim rápido e era impossível que cada site tivesse q rodar obrigatoriamente em um servidor diferente. Fucei vários sites na internet e achei primeiro o blog (10/10 esse blog, acessem ai) de um brasileiro que ensinava criar um proxy reverso para 1 aplicação.

Resumão de um proxy reverso para 1 aplicação (utilizando ubuntu)

Primeiro é preciso instalar o Nginx e ativar ele:

$ sudo apt-get install nginx 
$ sudo systemctl enable nginx
$ sudo systemctl start nginx 
$ sudo systemctl status nginx
Enter fullscreen mode Exit fullscreen mode

Se tudo deu certo quando você acessar o IP do seu servidor ou qualquer DNS que você configurou vai aparecer uma pagina igual a essa:

tela nginx

Agora vamos configurar o seu proxy reverso da sua aplicação, que já deve estar rodando em alguma porta do seu servidor. Vamos criar um arquivo de configuração

$ sudo nano /etc/nginx/sites-avaliable/meusite1.com
Enter fullscreen mode Exit fullscreen mode

e colar o seguinte código:

server {
    listen       80;
    server_name  localhost;

    location / {
        proxy_pass  http://127.0.0.1:<porta-do-servidor-site1>;
    }
}
Enter fullscreen mode Exit fullscreen mode

Obs: Não se esqueça dos ; se não da ruim depois.

Agora vamos excluir o arquivo de configuração padrão que vem com o Nginx e criar um link simbólico (symlink) do arquivo de configuração que você acabou de criar e reiniciar o Nginx

$ sudo rm /etc/nginx/sites-enabled/default
$ sudo ln -s /etc/nginx/sites-available/meusite1.com /etc/nginx/sites-enabled/meusite1.com
$ sudo systemctl restart nginx
Enter fullscreen mode Exit fullscreen mode

Agora quando você acessar o IP do seu servidor ou o DNS você não vai precisar utilizar de forma explícita o número da porta que a aplicação está rodando.


Criando proxy reverso pro segundo subdominío

Essa parte vai ser mais rápida. Você vai fazer basicamente a mesma coisa que já foi feita nos passos anteriores. Porém criando um arquivo de configuração diferente.

Você pode copiar o arquivo que você já tinha feito para o primeiro:

$ sudo cp /etc/nginx/sites-avaliable/meusite1.com /etc/nginx/sites-avaliable/meusite2.com
$ sudo nano/etc/nginx/sites-avaliable/meusite2.com
Enter fullscreen mode Exit fullscreen mode

e modificar o número da porta que a segunda aplicação está rodando:

server {
    listen       80;
    server_name  localhost;

    location / {
        proxy_pass  http://127.0.0.1:<porta-do-servidor-site2>;
    }
}
Enter fullscreen mode Exit fullscreen mode

Agora é só colocar esse arquivo na pasta sites-enabled e dar um restart no Nginx:

$ sudo ln -s /etc/nginx/sites-available/meusite2.com /etc/nginx/sites-enabled/meusite2.com
$ sudo systemctl restart nginx
Enter fullscreen mode Exit fullscreen mode

Pronto! Seus dois domínios estão funcionando agora. Basta ter configurado o subdomínio no seu DNS com o IP e a PORTA da segunda aplicação.


Vlw, qualquer dúvida chama no twitter @mat_almeida

Esse é um repost de um uma postagem que fiz no medium a um tempo atrás e achei que seria útil trazer para o dev.to

Top comments (0)