Ubuntu
增加 Ubuntu 上 Nginx 和 PHP-FPM 的最大允許打開文件數
我需要在 Ubuntu 16.04 上增加 Nginx 1.10 和 PHP-FPM 7 的最大允許打開文件數。根據一些教程,我在 /etc/security/limits.conf 中更改了每個使用者打開文件的最大數量
* soft nofile 64000 * hard nofile 68000
我還在 /etc/sysctl.conf 中更改了整個系統的最大打開文件數
fs.file-max = 200500
重新載入我的虛擬機後,我檢查了我登錄系統的使用者的軟限制和硬限制
igor@ubuntu:~$ ulimit -Sn 64000 igor@ubuntu:~$ ulimit -Hn 68000
如您所見,這些限制適用於使用者。我的問題是我無法更改 Nginx 和 PHP 的限制
igor@ubuntu:~$ sudo ps aux|grep nginx root 1124 0.0 0.0 45988 980 ? Ss 01:04 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 1125 0.0 0.2 46164 2372 ? S 01:04 0:00 nginx: worker process igor 2754 0.0 0.0 5108 848 pts/6 S+ 01:14 0:00 grep --color=auto nginx igor@ubuntu:~$ cat /proc/1124/limits Limit Soft Limit Hard Limit Units ..... Max open files 1024 4096 files .....
和 php 一樣
igor@ubuntu:~$ sudo ps aux|grep php root 1097 0.0 2.1 118388 22496 ? Ss 01:04 0:00 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) www-data 1140 0.0 0.5 118388 5532 ? S 01:04 0:00 php-fpm: pool www www-data 1141 0.0 0.5 118388 5532 ? S 01:04 0:00 php-fpm: pool www igor 2795 0.0 0.0 5108 852 pts/6 S+ 01:20 0:00 grep --color=auto php igor@ubuntu:~$ cat /proc/1097/limits Limit Soft Limit Hard Limit Units ..... Max open files 1024 4096 files .....
如何更改 PHP 和 NGINX 的限制?
您需要將該配置添加到
systemd
單元文件中。最好的辦法是通過一個插入文件來做到這一點。mkdir /etc/systemd/system/nginx.service.d echo "[Service] LimitNOFILE=10000" > /etc/systemd/system/nginx.service.d/local.conf systemctl daemon-reload systemctl restart nginx
然後對
php7.0-fpm.service
單元文件重複此操作。您也可以在 中設置預設值
/etc/systemd/system.conf
,但建議使用插入文件。