nginx与php-fpm实现高并发配置

nginx配置与php-fpm配置根据服务器配置优化,实现高并发访问

NGINX配置

  1. worker-processes 4;
    nginx开启的进程数,官方说明,默认1,增加数量可以减少机器io带来的影响,建议配置为CPU核数。实践表明,nginx的这个参数在一般情况下开4个或8个,数值增大优化不明显,并且可能会带来其他影响,卡死等。
    master不处理请求,而是根据相应配置文件信息管理worker进程,master进程主要负责即接收客户端的请求,并将请求合理的分配给多个worker,由worker处理请求。
  2. worker_rlimit_nofile 9000;
    可被一个工作进程打开的最大文件描述符数量。设置该参数后,worker_connections值不能超过这个值。
  3. worker_connections 9000;
    每一个worker进程能并发处理(发起)的最大连接数(包含所有连接数)。
    nginx作为反向代理服务器的时候广义理解并发用户数:
    max_clients = worker_processes * worker_connections/4
  4. multi_accept on;
    如果multi_accept被禁止了,nginx一个工作进程只能同时接收一个新的连接。否则,一个工作进程可以同时接收所有的新连接。 如果nginx使用kqueue连接方法,那么这条指令会被忽略,因为这个方法会报告在等待被接受的新连接的数量。
  5. access_log /var/log/nginx/access.log main buffer=32k;
    access_log off;
    log_not_found off;
    
    较大的访问会导致访问日志对磁盘的读写非常大。如果不需要日志的话,可以禁用掉,或者打开缓冲。

PHP-FPM配置

  1. pm = dynamic;
    进程数量管理方式。
    设置进程管理器管理子进程的方式,dynamic动态管理至少会创建一个子进程,其数量最大值由pm.max_children设定,初始创建数量由pm.start_servers来设定;static 静态管理设置固定数量的子进程随着服务启动而被创建;ondemand 在服务启动的时候并不创建子进程,当有请求的时候才根据情况创建。
  2. pm.max_children = 300;
    当pm设置为static的时候,表示随着服务的启动创建的子进程的数量;当pm设置为dynamic或者ondemand的时候,表示创建的子进程最多不能超过此数量
  3. pm.start_servers = 20;
    服务启动时创建的子进程(子进程而不是线程)的数量,此选项只有在pm设置为dynamic的时候才有效。当此值设为0,那么创建的子进程的数量min_spare_servers + (max_spare_servers – min_spare_servers)/2
  4. pm.min_spare_servers = 5;
    闲置时服务进程数量的最小值
  5. pm.max_spare_servers = 35;
    闲置时服务进程数量的最大值

你可能感兴趣的:(架构设计)