DEV Community

Matheus Almeida
Matheus Almeida

Posted on

4 1

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

Image of Docusign

Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs