2013-06-04 2 views
2

nginx에서 파일 설명자 제한을 늘리려면 어떻게해야합니까?Nginx 파일 설명자 제한

  1. 편집는 /etc/security/limits.conf과의 nginx 사용자를위한 설정 NOFILE 소프트 및 하드 제한 :

    여러 파일 설명자를 늘리는 방법이 있습니다.

  2. /etc/default/nginx에 $ ULIMIT을 설정하십시오. nginx.conf http://wiki.nginx.org/NginxHttpMainModule#worker_rlimit_nofile

에 ulimit를 $ ULIMIT https://gist.github.com/aganov/1121022#file-nginx-L43

  • 설정 worker_rlimit_nofile을 설정 한의 nginx에있는 init.d 스크립트는 부팅에있는 init.d 스크립트를 사용하기 시작했을 때의 limits.conf에 한계가 Nginx에 영향을 설정합니까?

    초기화 스크립트에서 ulimit $ ULIMIT을 사용해야합니까, 아니면 대신 worker_rlimit_nofile을 사용할 수 있습니까?

    init 스크립트에서 ulimit $ ULIMIT을 사용하는 경우 worker_rlimit_nofile을 사용하여 각 작업자에 대한 제한을 설정해야합니까?

    감사

  • +0

    ** ** 부작용이있을 수 있음을 ** 경고 **. 자세한 정보 [이 위대한 답변] (http://serverfault.com/a/209004/120233)에서 ServerFault. – kaiser

    답변

    2

    한계를 증가시키는 올바른 방법은 worker_rlimit_nofile을 설정하는 것입니다.

    +0

    어떻게 파생 시켰습니까? – Brian

    +0

    CentOS/Fedora 사용자에게 SELinux가 활성화 된 경우 nginx가 rlimit을 설정할 수있는 권한을 갖도록'setsebool -P httpd_setrlimit 1'을 실행해야합니다. – Jarrett

    2

    각 항목 논의 :

    1)는 /etc/security/limits.conf은 pam_limits를 처리한다. init.d에서 시작된 프로세스는 일반적으로 pam_limits를 사용하지 않습니다. 예를 들어 서비스 스크립트에서 init 수준의 ulimit을 설정해야합니다.

    2) 기본 nginx init 스크립트에는이 설정이 없습니다 (공식 Red Hat/CentOS 패키지의 경우). 그러나이 init 스크립트를 변경하는 것은 좋은 방법이지만 권장되지는 않습니다.

    3) worker_rlimit_nofile은 프로세스 수준에서만 작동하며 시스템의 하드 제한 (ulimit -Hn)으로 제한됩니다. 이것은 nginx 프로세스가 처리 할 수있는 최대 파일 디스크립터를 동적으로 변경하는 역할을합니다. 일반적으로 시스템의 소프트 제한으로 정의됩니다.