configure-reverse-proxy
について
このスキルは、NginxとTraefikを使用したリバースプロキシパターンを設定し、トラフィックルーティング、TLS終端、および負荷分散を行います。静的および動的設定、ミドルウェア、デプロイメントパターンについて網羅しています。単一ドメイン下で複数のサービスを公開する必要がある場合、パスベースのルーティングを実装する場合、またはTLS証明書管理を自動化する場合にご利用ください。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/configure-reverse-proxyこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
name: configure-reverse-proxy locale: es source_locale: en source_commit: 6f65f316 translator: claude-sonnet-4-6 translation_date: 2026-03-16 description: > Configurar patrones de proxy inverso con Nginx y Traefik para enrutamiento de tráfico, terminación TLS, descubrimiento de servicios, y balanceo de carga. Cubrir configuración estática y dinámica, middleware, y patrones de despliegue. Usar cuando se necesite exponer múltiples servicios bajo un único dominio, implementar enrutamiento basado en paths, o automatizar la gestión de certificados TLS. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: containerization complexity: intermediate language: multi tags: nginx, traefik, reverse-proxy, tls, service-discovery, load-balancing
Configurar Proxy Inverso
Configurar patrones de proxy inverso con Nginx y Traefik para enrutamiento y seguridad.
Cuándo Usar
- Exponiendo múltiples servicios bajo un único dominio con enrutamiento por paths
- Necesitando terminación TLS automática con Let's Encrypt
- Implementando descubrimiento dinámico de servicios con Docker
- Balanceando carga entre múltiples instancias de un servicio
- Configurando middleware para autenticación, rate limiting, o redirecciones
Entradas
- Requerido: Servicios backend con sus puertos y paths
- Requerido: Nombres de dominio para enrutamiento
- Opcional: Certificados TLS o configuración de Let's Encrypt
- Opcional: Reglas de middleware (autenticación, rate limiting)
- Opcional: Configuración de healthchecks para upstreams
Procedimiento
Paso 1: Elegir entre Nginx y Traefik
Nginx: Mejor para configuración estática, alto rendimiento, flexibilidad total. Traefik: Mejor para descubrimiento dinámico con Docker, certificados automáticos, dashboard integrado.
Esperado: Proxy seleccionado según los requisitos del proyecto.
En caso de fallo: Comenzar con Nginx si se necesita control total, Traefik si se prioriza la automatización.
Paso 2: Configurar Nginx como Proxy Inverso
# Enrutamiento basado en paths
server {
listen 443 ssl http2;
server_name api.ejemplo.com;
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/private/key.pem;
# API principal
location /api/v1/ {
proxy_pass http://api-service:8000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
# Servicio de autenticación
location /auth/ {
proxy_pass http://auth-service:8001/;
proxy_set_header Host $host;
}
# WebSocket
location /ws/ {
proxy_pass http://ws-service:8002/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Esperado: Las solicitudes se enrutan al servicio correcto basándose en el path.
En caso de fallo: Verificar barras finales en proxy_pass (afectan el reescritura de paths), comprobar resolución DNS de upstreams.
Paso 3: Configurar Traefik con Docker
# docker-compose.yml
services:
traefik:
image: traefik:v3.0
command:
- "--api.dashboard=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "[email protected]"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- letsencrypt:/letsencrypt
api:
image: mi-api:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`api.ejemplo.com`)"
- "traefik.http.routers.api.tls.certresolver=letsencrypt"
- "traefik.http.services.api.loadbalancer.server.port=8000"
volumes:
letsencrypt:
Esperado: Traefik descubre automáticamente servicios Docker, genera certificados TLS con Let's Encrypt.
En caso de fallo: Verificar acceso al socket de Docker, comprobar que las etiquetas son correctas, revisar el dashboard de Traefik.
Paso 4: Verificar y Probar
# Probar enrutamiento
curl -v https://api.ejemplo.com/api/v1/health
curl -v https://api.ejemplo.com/auth/status
# Verificar certificados TLS
openssl s_client -connect api.ejemplo.com:443 -servername api.ejemplo.com
# Probar balanceo de carga
for i in $(seq 1 10); do curl -s https://api.ejemplo.com/api/v1/instance; done
Esperado: Las solicitudes se enrutan correctamente, TLS funciona, el balanceo de carga distribuye tráfico.
En caso de fallo: Revisar logs del proxy, verificar resolución DNS, comprobar reglas de firewall.
Validación
- Las solicitudes se enrutan al servicio correcto por path/host
- TLS funciona con certificados válidos
- El balanceo de carga distribuye tráfico entre instancias
- Las cabeceras de proxy se pasan correctamente al backend
- WebSocket funciona a través del proxy
- Los healthchecks detectan backends no disponibles
Errores Comunes
- Barras finales en proxy_pass:
proxy_pass http://backend/(con barra) reescribe el path; sin barra no lo reescribe. - WebSocket sin upgrade headers: Requiere
proxy_http_version 1.1y cabeceras Upgrade/Connection. - Timeout de conexión: Backends lentos causan 504. Aumentar
proxy_read_timeoutyproxy_connect_timeout. - Socket Docker expuesto sin protección: El socket Docker da acceso root. Usar modo lectura (
:ro) y considerar Docker socket proxy. - Certificados Let's Encrypt fallando: Verificar que el puerto 80 es accesible desde Internet para el desafío HTTP.
Habilidades Relacionadas
configure-nginx- Configuración detallada de Nginx como servidor websetup-compose-stack- Integrar proxy en stacks Docker Composeconfigure-ingress-networking- Ingress controllers en Kubernetes
GitHub リポジトリ
関連スキル
llamaguard
その他LlamaGuardは、暴力やヘイトスピーチなど6つの安全性カテゴリーにおいて、LLMの入力と出力をモデレートするMetaの70-80億パラメータモデルです。94〜95%の精度を提供し、vLLM、Hugging Face、Amazon SageMakerを使用してデプロイ可能です。このスキルを使用して、AIアプリケーションにコンテンツフィルタリングと安全策を簡単に統合できます。
cost-optimization
その他このClaudeスキルは、リソースの適正サイジング、タグ付け戦略、支出分析を通じて、開発者がクラウドコストを最適化することを支援します。AWS、Azure、GCPにわたるクラウド支出の削減とコストガバナンスの実施のためのフレームワークを提供します。インフラコストの分析、リソースの適正サイジング、または予算制約への対応が必要な際にご利用ください。
quantizing-models-bitsandbytes
その他このスキルは、bitsandbytesを使用してLLMを8ビットまたは4ビット精度に量子化し、精度の低下を最小限に抑えつつ50〜75%のメモリ削減を実現します。限られたGPUメモリでより大規模なモデルを実行したり、推論を高速化するのに理想的で、INT8、NF4、FP4などのフォーマットをサポートしています。HuggingFace Transformersと統合され、QLoRAトレーニングや8ビットオプティマイザーを可能にします。
dispatching-parallel-agents
その他このClaudeスキルは、複数のエージェントを配備し、3つ以上の独立した問題を並行して調査・修正します。共有状態や依存関係がなく解決可能な、無関係な障害が発生するシナリオ向けに設計されています。中核となる機能は並列問題解決であり、効率を最大化するために独立した問題領域ごとに1つのエージェントを割り当てます。
