首頁 >後端開發 >php教程 >nginx配置文件 与 php-fpm配置文件 对应关系

nginx配置文件 与 php-fpm配置文件 对应关系

WBOY
WBOY原創
2016-06-06 20:13:281268瀏覽

ngin配置文件如下:

user nobody nobody;
worker_processes 4; //Nginx要开启的进程数
error_log logs/error.log notice;
pid logs/nginx.pid;
worker_rlimit_nofile 65535; //用于绑定worker进程和CPU, Linux内核2.4以上可用
events{

<code>use epoll;  
worker_connections      65536; //用于定义Nginx每个进程的最大连接数 
  } 
  </code>

php-fpm 配置文件如下:
5 //max_children用于设置FastCGI的进程数,根据官方建议,小于2GB内存服务器,可以只开启64个进程,4GB以上可以开启200个进程。
1024 //rlimit_files用于设置PHP-FPM对打开文件描述符的限制,默认值为1024。
500 //标签max_requests指明了每个children最多处理多少个请求后便会被关闭,默认的设置是500。

问:
1、nginx 配置文件中worker_processes和php-fpm中max_children的关系?
2、nginx配置文件中 worker_connections 和php-fpm中rlimit_files、max_requests 的关系?

回复内容:

ngin配置文件如下:

user nobody nobody;
worker_processes 4; //Nginx要开启的进程数
error_log logs/error.log notice;
pid logs/nginx.pid;
worker_rlimit_nofile 65535; //用于绑定worker进程和CPU, Linux内核2.4以上可用
events{

<code>use epoll;  
worker_connections      65536; //用于定义Nginx每个进程的最大连接数 
  } 
  </code>

php-fpm 配置文件如下:
5 //max_children用于设置FastCGI的进程数,根据官方建议,小于2GB内存服务器,可以只开启64个进程,4GB以上可以开启200个进程。
1024 //rlimit_files用于设置PHP-FPM对打开文件描述符的限制,默认值为1024。
500 //标签max_requests指明了每个children最多处理多少个请求后便会被关闭,默认的设置是500。

问:
1、nginx 配置文件中worker_processes和php-fpm中max_children的关系?
2、nginx配置文件中 worker_connections 和php-fpm中rlimit_files、max_requests 的关系?

一点关系都没有。ngnix作为前台代理,其基本不对请求进行处理,而是把请求交给php-fpm来处理。也就是说,ngnix基本不存在读写文件、数据库、资源等的IO密集操作,更多的是路由、Rewrite等的CPU密集操作,这时候我们更推荐将ngnix的并发进程数设置得和CPU核心数一致。而php-fpm是实际处理请求的程序,在处理过程中,IO操作较多,为了保证并发,我们会根据实际的物理性能,尽可能多的设置并发进程数。另外,nginx不是直接与每个php-fpm处理进程进行连接的,而是通过一个php-fpm的总控进程进行中转的,所以两者之间所配置的进程相关参数基本不存在联系。不过服务器整体性能是有短板效应的,性能会以两者之间较差的为限制,所以两者都配置得当才能从整体体现出效果。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn