Hostwinds Tutoriais

Resultados da busca por:


Índice


Pré-requisitos
Configuração Nginx
Teste a configuração do Nginx

Proxy reverso Nginx com SSL

Tag: Cloud Servers,  SSL,  VPS 

Pré-requisitos
Configuração Nginx
Teste a configuração do Nginx

Nginx é uma ferramenta poderosa. Ele permite que você sirva vários aplicativos, sites, aplicativos balanceados por carga e muito mais. Essa flexibilidade é alimentada por um sistema de configuração relativamente simples que usa arquivos de configuração quase-legíveis. Este guia demonstrará como configurar um proxy reverso NGINX com SSL em um Hostwinds Cloud VPS.

Pré-requisitos

Este guia assumirá uma compreensão geral de usar um sistema baseado em Linux via linha de comando e assumirá ainda mais os seguintes pré-requisitos:

  • Ubuntu 18.04
  • Usuário não root
  • Aplicativo em execução na porta de proxy reverso desejada (este guia assumirá a porta 3000)
  • Registro de nome DNS A para o domínio desejado
  • Certificado SSL para o Domínio

Configuração Nginx

O pacote Nginx-full padroniza para um ambiente de Host Virtual Compartilhado dinâmico. Os arquivos de configuração de cada Host Virtual estão disponíveis para uso aqui:

/etc/nginx/sites-available/

Este local terá um arquivo chamado padrão Disponível para usar como modelo base. No entanto, criaremos manualmente um novo arquivo de configuração neste guia e preenchê-lo conforme necessário. Uma vez logado como usuário não raiz, emite este comando para iniciar o processo:

sudo touch /etc/nginx/sites-available/domain.tld

Certifique-se de substituir Domínio-TLD. com o domínio que você está realmente usando.

Em seguida, passamos para modificar esse arquivo para executar as tarefas que precisamos. Nós estaremos usando vim neste guia como editor de texto. Você pode usar nano ou qualquer outro editor de texto baseado em sua preferência pessoal.

sudo vim /etc/nginx/sites-available/domain.tld

Agora que o arquivo existe adicionar o seguinte texto a este arquivo. Modifique o texto indicado para referenciar seu domínio, a porta do seu aplicativo está usando e seus caminhos de certificado SSL. Este arquivo será a principal configuração para o proxy reverso:

###
# This Section listens on port 80 for your domain and rewrites the request 
# to HTTPS for us
###

server {
listen 80;
server_name domain.tld www.domain.tld; # Edit this to your domain name
rewrite ^ https://$host$request_uri permanent;
}

###
# This is all the configuration declarations that help SSL Function.
###

server {
listen 443 ssl;

server_name domain.tld;
# Edit this to your domain name

ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;       
# If you use Lets Encrypt, you should just need to change the domain. 

ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;     
# If you use Let's Encrypt, you should just need to change the domain.

ssl_session_cache builtin:1000 shared:SSL:10m;                        
# Defining option to share SSL Connection with Passed Proxy

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                                  
# Defining used protocol versions. 

ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
# Defining ciphers to use. 

ssl_prefer_server_ciphers on;                                         
# Enabling ciphers

access_log /var/log/nginx/access.log;                                 
# Log Location. Can be anywhere. Make sure the nginx user defined in /etc/nginx/nginx.conf has r/w permissions

###
# This is the juicey part of the config file, handing off relevant data to 
# our back-end app running on port 3000
# Nothing should need to be changed here, unless port 3000 is not the port 
# you're using. 
# Furthermore, if you're using a socket to serve your app (PHP comes to 
# mind), you can define a unix:.sock location here as well
###

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:3000;
proxy_read_timeout 90;
}
}

Salve o arquivo e saia do editor de texto.

Teste a configuração do Nginx

Agora que a configuração foi criada, temos que dizer ao Nginx para verificar o arquivo durante o carregamento. Faremos um link simbólico:

sudo ln -s /etc/nginx/sites-avaialable/domain.tld /etc/nginx/sites-enabled/domain.tld.conf

Em seguida, testamos a configuração antes de reiniciar o serviço do sistema Nginx

sudo nginx -t

Posteriormente, ele deve executar o teste e gerar a seguinte mensagem em caso de sucesso:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Agora sabemos que o arquivo de configuração não causará uma falha, então vamos reiniciar o serviço Nginx e testar o aplicativo.

sudo systemctl restart nginx

Agora você deve ter acesso ao aplicativo em execução na porta definida navegando para o Domínio-TLD. conforme descrito no arquivo de configuração Nginx criado anteriormente.

Escrito por Hostwinds Team  /  Junho 14, 2019