O que nginx-configuration faz?
Configure o servidor web Nginx para proxy reverso de alto desempenho, balanceamento de carga, SSL/TLS, cache e funcionalidade de gateway de API.
Visão Geral
Esta skill fornece as configurações necessárias para transformar o Nginx em uma solução completa de entrega de aplicações web, incluindo:
- Proxy Reverso: Encaminhamento de requisições para servidores backend.
- Balanceamento de Carga: Distribuição de tráfego entre múltiplos servidores upstream.
- SSL/TLS: Terminação segura com certificados SSL.
- Cache: Armazenamento em cache de conteúdo estático e dinâmico.
- Gateway de API: Roteamento de requisições para microsserviços.
Estrutura de Arquivos
nginx-configuration/
├── conf.d/
│ ├── default.conf
│ ├── load-balancer.conf
│ ├── ssl.conf
│ └── cache.conf
├── sites-available/
│ └── example.com
└── nginx.conf
Configuração de Proxy Reverso
Exemplo de configuração para proxy reverso:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Balanceamento de Carga
Para balancear tráfego entre servidores backend:
upstream backend {
least_conn;
server backend1.example.com weight=3;
server backend2.example.com;
server backend3.example.com backup;
}
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://backend;
}
}
SSL/TLS
Configuração básica para terminação SSL:
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
Cache
Configuração de cache de proxy:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
location / {
proxy_cache my_cache;
proxy_cache_valid 200 304 12h;
proxy_cache_valid qualquer 1h;
proxy_cache_methods GET HEAD;
add_header X-Proxy-Cache $upstream_cache_status;
}
}
Gateway de API
Roteamento de microsserviços:
upstream users-api {
server users-service:4000;
}
upstream orders-api {
server orders-service:5000;
}
upstream products-api {
server products-service:6000;
}
server {
listen 80;
server_name api.example.com;
location /users/ {
proxy_pass http://users-api;
}
location /orders/ {
proxy_pass http://orders-api;
}
location /products/ {
proxy_pass http://products-api;
}
}
Comandos Úteis
- Testar configuração:
nginx -t - Recarregar configuração:
nginx -s reload - Verificar logs:
tail -f /var/log/nginx/access.log
Recursos Adicionais
Licença
MIT