YiluPHP
这家伙很懒,什么都没有留下...

经验 nginx + php-fpm 高并发配置 (也包括一部分apache/httpd)

浏览数 183236

fpm用的php.ini下 (/etc/php5/fpm/php.ini),很重要,不改会有安全漏洞。

cgi.fix_pathinfo=0

 

去掉防syn flood攻击 (高并发下会主动堵塞apache请求 导致ab测试下 apr_socket_recv: Connection reset by peer (104))

参考: http://xmarker.blog.163.com/blog/static/226484057201462263815783/

vi /etc/sysctl.conf

net.ipv4.tcp_syncookies=0

 

看ulimit数

ulimit -Sn

 

ulimit加到30000+

如何修改自行百度,不同linux发行版貌似不一样

例如:
https://www.cnblogs.com/zengkefu/p/5649407.html

http://blog.csdn.net/yangzhenzhen/article/details/8905846
http://blog.csdn.net/gatieme/article/details/51058797

修改所有 linux 用户的环境变量文件:
vi /etc/profile 
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited 
ulimit -m unlimited 
ulimit -s unlimited 
ulimit -t unlimited 
ulimit -v unlimited

执行以下命令使变量立即生效

source /etc/profile


nginx.conf下修改

worker_processes 12;

worker_rlimit_nofile 100000;

events { 

  use epoll; 

  worker_connections 65535; 

}

 

php-fpm的sock模式是不可靠的,并发一高就会崩。

 

php-fpm.conf (or www.conf)

改成listen = 127.0.0.1:9000, 不要用listen = /var/run/php5-fpm.sock

process.max = 65536 (这个似乎没用)

pm下4个,改大一点,按照一个进程占30M内存计算。

pm.max_requests = 50000 (这个似乎也没用)

 

nginx web server配置下选择

fastcgi_pass 127.0.0.1:9000;

我来说说