Nginx
server {
server_name [Link];
underscores_in_headers on;
location / {
proxy_pass [Link]
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
location /api {
proxy_pass [Link]
}
}
Flags utilizadas no Nginx
server_name [Link]: Definimos qual domínio irá utilizar a configuração do nginx que
criamos. No lugar de [Link] deve ser colocado o domínio da aplicação.
underscores_in_headers on: Permite que os headers da aplicação contenham underlines:
“_”.
location /: Define o path do domínio que irá receber determinada configuração. Neste caso
iremos aplicar configurações na rota /, que é a rota default do domínio. Todos os paths
receberão essa configuração a menos que sejam sobrescritos no próprio Nginx (veremos na
location /api como isso acontece).
proxy_pass [Link] Definimos qual serviço será executado quando domínio
for acessado. Neste caso está sendo definido que a porta 3000 será retornada para o
cliente ao acessar o domínio. No exemplo do curso, na porta 3000 estará rodando o nosso
frontend.
proxy_http_version 1.1: Define a versão do http que será utilizada para realização do
proxy.
proxy_set_header Upgrade $http_upgrade, proxy_set_header Connection 'upgrade':
Caso a aplicação utilize WebSockets para comunicação em tempo real, estas flags irão
permitir o upgrade do protocolo HTTP para permitir WebSocket.
proxy_set_header Host $host: Define de qual host será realizado o proxy, neste caso
passamos a variável $host, para que seja utilizado o domínio definido no server_name.
proxy_set_header X-Real-IP $remote_addr, proxy_set_header X-Forwarded-Proto
$scheme, proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for: Estas
flags permitem que o nginx obtenha o IP que realizou a requisição para o servidor.
proxy_cache_bypass $http_upgrade: Não pega do cache a versão do HTTP, neste caso
será utilizada a versão mais recente.
location /api: Define que serão realizadas configurações na rota /api, neste caso esta
configuração será aplicada sempre que for chamada uma requisição para o domínio
configurado no path /api. Neste exemplo, seria [Link]/api.
proxy_pass [Link] Define que para requisições na location /api, será
entregue o serviço presente na porta 3333. No exemplo do curso, na porta 3333 estará
rodando o nosso backend.