Article ID: 115139, created on Jun 26, 2013, last review on Sep 25, 2014

  • Applies to:
  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.3 for Linux/Unix

Síntomas

Cuando el soporte para Nginx está habilitado y existen más de 256 dominios, Nginx devuelve el siguiente error:

2012-11-08T20:13:34+07:00 ERR (3): Apache config (13523804010.47553900) generation failed: nginx: [emerg] open() "/var/www/vhosts/test255.tld/statistics/logs/proxy_access_ssl_log" failed (24: Too many open files)
nginx: configuration file /etc/nginx/nginx.conf test failed

Causa

El host virtual de Nginx abre cuatro archivos de registro para cada uno de los hosts virtuales con hosting físico:

  1. proxy_access_log
  2. proxy_access_ssl_log
  3. webmail_access_log
  4. webmail_access_ssl_log

Como resultado, el servidor Nginx excede el número máximo de archivos abiertos.

Resolución

  1. En la configuración de Nginx, establezca el valor ULIMIT requerido:

    Debian/Ubuntu:

    # echo 'NGINX_ULIMIT="-n 4096"' >> /etc/default/nginx
    

    RHEL/CentOS/openSUSE:

    # echo 'NGINX_ULIMIT="-n 4096"' >> /etc/sysconfig/nginx
    
  2. En la configuración de Nginx, defina 'worker_rlimit_nofile' para aumentar el número máximo de archivos abiertos permitidos por el proceso:

    # grep 16384 /etc/nginx/nginx.conf 
            worker_rlimit_nofile 16384;
    

    NOTA: En el caso de sistemas operativos que utilicen 'systemd' en vez de SysV y LSB, como por ejemplo CentOS 7, RHEL 7, Debian 7

    Aumente LimitNOFILE de Systemd en la sección '[Service]'. Para ello, modifique el archivo /usr/lib/systemd/system/nginx.service

    [Service]
    LimitNOFILE=4096
    

    Tenga en cuenta que una vez se realice cualquier cambio en la configuración de unit, es necesario volver a cargar el daemon systemd:

    # systemctl --system daemon-reload
    
  3. Reinicie el servicio Nginx:

    # service nginx restart
    
  4. Vuelva a generar la configuración del servidor web:

    # /usr/local/psa/admin/sbin/httpdmng --reconfigure-all
    

Pasos adicionales que también deben aplicarse en el caso Parallels Plesk Panel 11.0.9

  1. En la configuración de Nginx, establezca el valor ULIMIT requerido:

    Debian/Ubuntu:

    # echo 'ULIMIT="-n 4096"' >> /etc/default/nginx
    

    RHEL/CentOS/openSUSE:

    # echo 'ULIMIT="-n 4096"' >> /etc/sysconfig/nginx
    
  2. En la configuración de Nginx, defina 'worker_rlimit_nofile' para aumentar el número máximo de archivos abiertos permitidos por el proceso:

    # grep 16384 /etc/nginx/nginx.conf 
              worker_rlimit_nofile 16384;
    
  3. Descargue y aplique el parche requerido ejecutando los comandos que aparecen a continuación. El primer comando crea un backup del archivo original al que se aplicará el parche y lo sitúa en el directorio /root:

    # cp /etc/init.d/nginx /root/nginx.backup
    

    Debian/Ubuntu:

    # wget http://kb.sp.parallels.com/Attachments/22839/Attachments/nginx.debian-ubuntu.patch
    # patch /etc/init.d/nginx nginx.debian-ubuntu.patch
    

    RHEL/CentOS:

    # wget http://kb.sp.parallels.com/Attachments/22839/Attachments/nginx.redhat-centos.patch
    # patch /etc/init.d/nginx nginx.redhat-centos.patch
    

    openSUSE:

    # wget http://kb.sp.parallels.com/Attachments/22839/Attachments/nginx.suse.patch
    # patch /etc/init.d/nginx nginx.suse.patch
    
  4. Cambie el límite para los descriptores de archivos abiertos para el usuario root y los usuarios psaadm:

    # egrep "root|psaadm" /etc/security/limits.conf
    root hard nofile 4096
    root soft nofile 4096
    psaadm hard nofile 4096
    psaadm soft nofile 4096
    

Nota: para que los cambios se apliquen correctamente, es necesario volver a acceder al terminal.

  1. Añada la línea ulimit -n 32768 al principio del script /usr/local/psa/admin/sbin/nginx-config:

    #!/usr/bin/env bash
    ulimit -n 32768
    
  2. Reinicie los servicios de Nginx y sw-cp-server:

    # /etc/init.d/sw-cp-server restart
    # /etc/init.d/nginx restart
    
  3. Vuelva a generar la configuración del servidor web:

    # /usr/local/psa/admin/sbin/httpdmng --reconfigure-all
    

Tenga en cuenta que estos parámetros de configuración NO se sobrescribirán durante la instalación de una microactualización.

Attachments

0a53c5a9ca65a74d37ef5c5eaeb55d7f 56797cefb1efc9130f7c48a7d1db0f0c a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 01bc4c8cf5b7f01f815a7ada004154a2 2a5151f57629129e26ff206d171fbb5f e335d9adf7edffca6a8af8039031a4c7 aea4cd7bfd353ad7a1341a257ad4724a 742559b1631652fadd74764ae8be475e f4ce8084cb23619ef5fe9428ecc388ea dd0611b6086474193d9bf78e2b293040

Email subscription for changes to this article
Save as PDF