Files
anatomia/nginx/nginx.conf
T

65 lines
2.1 KiB
Nginx Configuration File

worker_processes auto;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_types text/plain text/css application/javascript application/json application/wasm model/gltf-binary;
# Respect a proxy in front of this container (the user's own reverse proxy).
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
absolute_redirect off;
# 127.0.0.11 é o DNS interno do Docker. Usar uma variável no proxy_pass
# (em vez do hostname direto) força o nginx a resolver "anatomia-api"
# de novo a cada `valid=`, em vez de resolver uma única vez quando o
# worker sobe e cachear esse IP para sempre — sem isso, recriar o
# container anatomia-api (rebuild, restart) muda o IP dele e o nginx
# continua batendo no IP antigo até ser reiniciado manualmente.
resolver 127.0.0.11 valid=10s;
location /api/ {
set $api_upstream anatomia-api:3333;
# Sem caminho depois da variável: com proxy_pass "dinâmico" (via
# variável) o nginx não reescreve o prefixo da location — ele só
# repassa a URI original inteira. Como as rotas do Fastify já são
# registradas em /api/..., isso bate certinho sem precisar reescrever.
proxy_pass http://$api_upstream;
proxy_http_version 1.1;
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;
}
location /models/ {
set $api_upstream anatomia-api:3333;
proxy_pass http://$api_upstream;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Cache-Control "public, max-age=604800, immutable";
}
# SPA fallback.
location / {
try_files $uri $uri/ /index.html;
}
}
}