Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

224
Vistas
El proxy inverso de Nginx no responde a las solicitudes después de la prueba de carga

He implementado Gunicorn (con matraz) detrás de Nginx (como servidor proxy). Uso 2 contenedores docker (Gunicorn, Nginx).

Comencé una prueba de carga de "5000 usuarios simultáneos", enviando solicitudes al servidor Nginx en el puerto 80 (usando Locust). después de unos segundos detuve la prueba de carga. Después de detener la prueba de carga, Nginx dejó de responder a las solicitudes (pero aún puedo enviar solicitudes a Gunicorn directamente en el puerto 8000).

No espero que Nginx responda a tantas solicitudes simultáneas mientras se ejecuta en mi sistema con 1 servidor Gunicorn, pero ¿por qué ya no responde a las solicitudes? Necesito reiniciar el contenedor de Nginx para que vuelva a estar disponible. La razón por la que agregué Nginx es porque observé el mismo comportamiento mientras realizaba pruebas de carga en Gunicorn directamente.

Esperaría que Nginx bloqueara o pusiera en cola las solicitudes, pero no que congelara/bloqueara las solicitudes para siempre.

¿Qué estoy haciendo mal? ¿Cuál es la configuración correcta para permitir muchas solicitudes simultáneas (usando 1 contenedor Nginx y 1 contenedor Gunicorn)?

Mi sistema: MacBook Pro 2.9 GHz 6-Core Intel Core i9 32 GB 2400 MHz DDR4

Configuración de gunicornio:

 bind = '0.0.0.0:8000', workers = 8 (sync), loglevel = 'info', preload_app=true

Configuración de Nginx:

 worker_processes 8; user nobody nogroup; error_log /dev/stdout info; pid /var/run/nginx.pid; events { worker_connections 20000; # increase if you have lots of clients accept_mutex on; # set to 'on' if nginx worker_processes > 1 } http { include mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log combined; sendfile on; server { # if no Host match, close the connection to prevent host spoofing listen 80 default_server; return 444; } server { listen 80; client_max_body_size 4G; # set the correct host(s) for your site server_name localhost; keepalive_timeout 5; # path for static files root /path/to/app/current/public; location / { # checks for static file, if not found proxy to app try_files $uri @proxy_to_app; } location @proxy_to_app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; # we don't want nginx trying to do something clever with # redirects, we set the Host: header above already. proxy_redirect off; proxy_pass http://flask-container:8000; } error_page 500 502 503 504 /500.html; location = /500.html { root /path/to/app/current/public; } } }

Gracias de antemano.

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda