实现模块
- http_fastcgi_module
- 配置指令
fastcgi_pass ADDRESS;
# 转发请求到后端服务器,ADDRESS 为后端的fastcgi server 的地址,可用位置:location, if in location
fastcgi_index name;
# fastcgi 默认的主页资源,示例:fastcgi_index index.php;
fastcgi_param parameter value [if_not_empty];
#设置传递给 FastCGI 服务器的参数值,可以是文本,变量或组合
fastcgi_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];
定义fastcgi的缓存;
path # 缓存位置为磁盘上的文件系统路径
max_size=size # 磁盘path路径中用于缓存数据的缓存空间上限
levels=levels # 缓存目录的层级数量,以及每一级的目录数量,levels=ONE:TWO:THREE,示例:leves=1:2:2
keys_zone=name:size # k/v映射的内存空间的名称及大小
inactive=time # 非活动时长
fastcgi_cache zone | off;
# 调用指定的缓存空间来缓存数据,可用位置:http, server, location1
fastcgi_cache_key string;
# 定义用作缓存项的 key 的字符串,示例:fastcgi_cache_key $request_uri;
fastcgi_cache_methods GET | HEAD | POST ...;
# 为哪些请求方法使用缓存
fastcgi_cache_min_uses number;
# 缓存空间中的缓存项在 inactive 定义的非活动时间内至少要被访问到此 处所指定的次数方可被认作活动项
fastcgi_keep_conn on | off;
#收到后端服务器响应后,fastcgi 服务器是否关闭连接,建议启用长连接
fastcgi_cache_valid [code ...] time;
# 不同的响应码各自的缓存时长
fastcgi_hide_header field;
# 隐藏响应头指定信息
fastcgi_pass_header field;
# 返回响应头指定信息,默认不会将 Status、X-Accel-...返回
安装示例 (与 Nginx 同一台服务器)
- yum 安装 php-fpm
~]# yum install -y php-fpm
~]# systemctl start php-fpm && systemctl enable php-fpm
- php 相关配置优化
~]# vim /etc/php-fpm.d/www.conf
[www]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
user = nginx # php-fpm 启动的用户和组,会涉及到后期文件的权限问题
group = nginx
pm = dynamic # 动态模式进程管理
pm.max_children = 500 # 静态方式下开启的php-fpm进程数量,在动态方式下他限定 php-fpm 的大进程数
pm.start_servers = 100 # 动态模式下初始进程数,必须大于等于 pm.min_spare_servers 和小于等于 pm.max_children 的值。
pm.min_spare_servers = 100 # 小空闲进程数
pm.max_spare_servers = 200 # 大空闲进程数
pm.max_requests = 500000 # 进程累计请求回收值
pm.status_path = /pm_status # 状态访问 URL
ping.path = /ping # ping 访问动地址
ping.response = ping-pong # ping 返回值
slowlog = /var/log/php-fpm/www-slow.log # 慢日志路径
php_admin_value[error_log] = /var/log/php-fpm/www-error.log # 错误日志
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files # phpsession保存方式及路径
php_value[session.save_path] = /var/lib/php/session # 当时使用file保存session的文件路径
修改配置文件后需要重启 php-fpm 生效
- Nginx 端配置转发
~]# vim /apps/nginx/conf/conf.d/home.conf
# 在指定文件配置 fastcgi
location ~ \.php$ {
root /data/nginx/php; # $document_root 调用 root 目录
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /data/nginx/php$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# 如果 SCRIPT_FILENAME 是绝对路径则可省略 root /data/nginx/php;
include fastcgi_params;
}
- php 测试页面
~]# mkdir /data/nginx/php
~]# vim /data/nginx/php/index.php
<?php
phpinfo();
?>
重启 Nginx 并访问 web 测试
安装示例 (与 Nginx 不在同一个服务器)
- yum 安装 php (同上)
- 修改 php-fpm 监听配置
~]# vim /etc/php-fpm.d/www.conf
listen = 192.168.10.104:9000
# 指定监听 IP 地址,默认在 127.0.0.1 的 9000 端口,无法远程连接
;listen.allowed_clients = 127.0.0.1
# 注释运行的客户端 (注释注释符为";")
- Nginx 配置转发
location ~ \.php$ {
root /data/php;
fastcgi_pass 192.168.10.104:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /data/php$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_param;
}
重启 Nginx 并访问 web 测试
网友评论