NGINX实战 fastcgi & php-fpm

静态网站:nginx服务器能处理的是静态元素   .html   .jpg  .mp4 .css

1.ngx_fastcgi_module

处理动态请求的接口

nginx 通过ngx_fastcgi_modul模块 链接 php-fpm处理动态请求。

2.php-fpm 

PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)
是一个PHP FastCGI管理器。
PHP通过php-fpm接收前台nginx的动态访问的请求,比如向后端Mysql进行查询请求后,将查询结果返回给前台nginx。

PHP-MYSQL
        php-mysql:是php连接mysql的接口程序。

3.php-fpm初始化配置

1.了解php-fpm相关配置文件

1.核心配置文件

vim /etc/php.ini

date.timezone = PRC        设置PHP的时区

open_basedir        设置PHP脚本允许访问的目录.
open_basedir 将PHP所能打开的文件限制在指定的目录树中,包括文件本身。当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。

2.全局配置文件

vim /etc/php-fpm.conf 

pid = /run/php-fpm/php-fpm.pid        设置pid文件的位置

error_log = log/php-fpm.log        记录错误日志的文件

log_level = notice         记录日志的等级
     alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice.

 process.max = 3        默认没设置
    process.max: 控制子进程最大数的全局变量, 后边的设置子进程数量的指令受到这个值的限制, 0表示无限制

daemonize = yes        将fpm转至后台运行

3.扩展配置文件

vim /etc/php-fpm.d/www.conf

user = nginx        设置用户和用户组

listen.allowed_clients = 127.0.0.1        允许访问FastCGI进程的IP,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是any。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接

slowlog = /var/log/php-fpm/$pool-slow.log        开启慢日志

pm=dynamic        动态模式进程管理开启

start_servers=5        最初开启多少进程

min_spare_server =5        最小的多余进程数。最少空闲。用户访问会消耗掉进程。然后为了满足后续游湖随时随地开启进程保持空闲数为5。

max_children = 50        最大进程数
        max_children是PHP-FPM Pool 最大的子进程数,他数值取决于你的服务器内存。 假设你打算给10G内存给当前配置的PHP-FPM Pool,一般一个PHP请求占用内存10M-40M,我们按站点每个PHP请求占用内存25M,这样max_children = 10G/25M = 409。所以,这个值可以根据情况算出来

max_spare_servers=10        最大的多余进程。大规模断开后,高并发访问过后,还剩多少。

max_requests = 500        每个子进程能响应的请求数量,到达此数字,该PHP进程就被释放掉了。max_requests是每个子进程重生之前处理的请求数, 默认值为unlimited(默认为1024),可以设置小一点(如500左右),这样可以避免内存泄露带来的问题

2.初始化php-fpm

vim /etc/php-fpm.d/www.conf

设置生产环境下常用数值。

dynamic:启动动态管理模式
start_servers:初始启动32个进程
max_children:最大进程数。(子进程数会在最大和最小数范围中变化)512个进程数是在大于16G内存的前提下。
min_spare:随着用户访问的增加,保持32个空闲进程。
max_spare:随着用户离去。杀死大量空闲进程来节约资源。
max_requests:是每个子进程重生之前处理的请求数, 默认值为unlimited(为1024)

关于max_children

max_children是PHP-FPM Pool 最大的子进程数,他数值取决于你的服务器内存。 假设你打算给10G内存给当前配置的PHP-FPM Pool,一般一个PHP请求占用内存10M-40M,我们按站点每个PHP请求占用内存25M,这样max_children = 10G/25M = 409。所以,这个值可以根据情况算出来

systemctl restart php-fpm

3.启动php状态监控页面功能

1.启动测试页功能


  vim  /etc/php-fpm.d/www.conf
  pm.status_path = /php_status

2.nginx配置页面转发

vim /etc/nginx/conf.d/default.conf

location = /php_status {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
}

include fastcgi_params是常用变量所在的文件名。

systemctl restart nginx

systemctl restart php-fpm

3.访问测试页

http://192.168.100.10/php_status

  • 40
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值