Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
Configuración óptima de Nginx para manejar miles de solicitudes en segundos

¿Cuáles son las configuraciones óptimas para que Nginx maneje MUCHAS solicitudes al mismo tiempo?

Mi servidor está configurado con Nginx y PHP7.3 en Ubuntu 20.04 LTS. La aplicación que se está ejecutando está compilada con Laravel 7.

Esta es mi configuración actual:

 location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_index index.php; fastcgi_buffer_size 14096k; fastcgi_buffers 512 14096k; fastcgi_busy_buffers_size 14096k; fastcgi_connect_timeout 60; fastcgi_send_timeout 300; fastcgi_read_timeout 300; }

Los parámetros fastcgi que coloqué los encontré a través de Google y ajusté el número a algunos valores altos.

La aplicación hace lo siguiente:

  • Más de 1500 usuarios están en línea
  • reciben una pregunta de opción múltiple enviada directamente a través de Pusher
  • responden la pregunta todos juntos casi a la vez = 1 solicitud al servidor a través de Ajax para cada respuesta
  • cada vez que se da una respuesta, los resultados se obtienen del servidor para cada usuario

Los cuatro pasos se pueden realizar en un par de segundos.

El servidor no alcanza su punto máximo de CPU ni de memoria cuando se hace esto, lo único que sucede es que algunos usuarios obtienen un tiempo de espera 502.

Parece un problema de configuración del servidor en Nginx.

Estas son las estadísticas del servidor del momento en que sucedió:

  • Sistema: 25 %, CPU: 22 %, E/S de disco: 0 %: 8 núcleos de procesador disponibles
  • RAM: 1.79GB - disponible 3GB

La nota al margen es que deshabilité VerifyCsrfToken en Laravel para las rutas que se llaman para evitar una carga adicional en el servidor.

¿Qué me estoy perdiendo? ¿Tengo que cambiar también algunas configuraciones de PHP-FPM? Si es así, ¿a qué y dónde puedo hacer eso?

Esto es lo que me dicen los registros de errores de Nginx del dominio:

 2020/04/25 13:58:14 [error] 7210#7210: *21537 connect() to unix:/var/run/php/php7.3-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 54.221.15.18, server: website.url, request: "GET /loader HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.3-fpm.sock:", host: "website.url"

Configuración de www.conf:

 pm.max_children = 100 pm.start_servers = 25 pm.min_spare_servers = 25 pm.max_spare_servers = 50 pm.max_requests = 9000 ;pm.process_idle_timeout = 10s; ;pm.status_path = /status
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

(11: Resource temporarily unavailable)

Eso es EAGAIN / EWOULDBLOCK , eso significa que nginx aceptó conexiones de clientes, pero no puede conectarse al socket UNIX de PHP-FPM sin bloquear (esperar), y probablemente, sin mirar el código fuente de nginx, nginx había intentado varias veces conectarse a dicho socket UNIX pero falló, por lo que nginx arroja una Connection refused .

Hay algunas maneras de resolver esto, ya sea:

  1. aumente el valor de configuración de listen.backlog en su configuración de grupo de PHP-FPM, con sus correspondientes net.ipv4.tcp_max_syn_backlog , net.ipv6.tcp_max_syn_backlog y net.core.netdev_max_backlog en sysctl .
  2. cree múltiples grupos de php-fpm, luego use la configuración de nginx upstream para usar estos grupos.
over 4 years ago · Santiago Trujillo Relatório

0

Edite /etc/security/limits.conf , ingrese:

 # vi /etc/security/limits.conf

Establezca un límite flexible y estricto para todos los usuarios o el usuario nginx de la siguiente manera:

 nginx soft nofile 10000 nginx hard nofile 30000
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda