Skip to content

Configuração do Nginx na Máquina Virtual

Gabriela Guedes edited this page Jun 24, 2019 · 3 revisions

Este documento também está disponível em Inglês

1. Criação do Arquivo de configuração do Nginx

1.1 Criação dos diretórios

A primeira coisa a ser feita é criar os diretórios que serão utilizados

mkdir data

cd data

mkdir nginx

1.2 Criando subdomínio no Gandi.net

Acesse https://www.gandi.net/en

  • Crie o domínio, na seção de domain, utilizando o IP externo da máquina

1.3 Criação do arquivo de configuração do Nginx

Em seguida crie o arquivo de configuração do nginx dentro do diretório /nginx/data/nginx e substitua example.org pelo seu nome de domínio o IP/porta do servidor e o projectname pelo nome do seu projeto

upstream projectname {
    server 10.0.0.10:8000;
}
server {
    listen 80;
    server_name example.org;
    location / {
        return 301 https://$host$request_uri;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }
}
server {
    listen 443 ssl;
    server_name example.org;

    location / {
        proxy_pass http://projectname;  
    }
    ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

2.0 Configurando docker-compose para nginx

Primeiramente crie um arquivo chamado docker-compose.yml no diretório ~/nginx

Em seguida adicione as configurações do arquivo:

version: '3'
services:
  nginx:
    image: nginx:1.15-alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./data/nginx:/etc/nginx/conf.d
      - ./data/certbot/conf:/etc/letsencrypt
      - ./data/certbot/www:/var/www/certbot
    # command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
  certbot:
    image: certbot/certbot
    volumes:
      - ./data/certbot/conf:/etc/letsencrypt
      - ./data/certbot/www:/var/www/certbot
    # entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"

3.0 Criando certificado

3.1 Criando arquivo de geração de certificado

Crie um arquivo chamado init-letsencrypt.sh no diretório ~/nginx Adicione no arquivo o conteúdo abaixo para geração de certificado. Link para acesso ao script a ser adicionado

E altere o domínio para o domínio referente ao que foi criado no Gandi

3.2 Gerando certificado

Execute o comando abaixo para tornar o arquivo criado executável:

chmod a+x init-letsencrypt.sh

Execute o script para gerar o certificado

./init-letsencrypt.sh

Para verificar informações sobre registros de DNS de um determinado domínio, host ou IP utilize o comando abaixo, trocando pelo seu domínio

nslookup example.org O resultado deve ser algo desse tipo

Server:		0.0.0.0
Address:	0.0.0.0#53

Non-authoritative answer:
Name:	example.org
Address: 192.168.0.0 ```


### 4.0 Executando Projeto
Execute o projeto por meio do comando
``sudo docker-compose up --build -d``

Abra o navegador e insira seu domínio
Você deve ser redirecionado para a página da aplicação