一、安装fastcgi模块
1、yum install php-fpm,php-mysql,php-mbstring,php-gd,php-xml
php-fpm:PHP FastCGI Process Manager,基于fastcgi协议的php进程管理器。nginx可通过该程序与php完成动态数据交互.
php-fpm的工作方式类似于httpd的prefork模型
/etc/php-fpm.d/www.conf文件为php-fpm的主配置文件,主要配置项有:
listen = 127.0.0.1:9000 ##监听地址
listen.allowed_clients = 127.0.0.1 ###允许交互的客户端ip
user = apache
group = apache
pm = dynamic ###使用动态方法
pm.max_children = 50 ###一次请求允许的最多资源数
pm.start_servers = 5 ###刚开始时启动的进程
pm.min_spare_servers = 5 ###最少空闲进程数
pm.max_spare_servers = 35 ###最大空闲进程数
2、nginx的fastcgi模块指令:
fastcgi_pass 127.0.0.1:9000; ###是fpm服务监听的地址和端口
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; ####指明当前fpm服务的root路径.如,请求http://localhost/index.php 就会对应这个选项中定义的/usr/local/nginx/html/index.php文件路径
include fastcgi_params;####表示还包括fastcgi_params文件中定义的参数
3.启动php-fpm.service进行测试:
systemctl start php-fpm.service
在fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;定义的路径下创建一个php测试页info.php文件,内容如下,表示输出php的相关信息:
浏览器输入服务器ip加测试页地址:
证明测试生效.
二、fastcgi缓存相关配置:
1、fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=fcgicache:10m;####指明fastcgi的缓存文件路径,levels表示nginx的缓存机制创建一级目录与二级目录,keys_zone指明缓存键的区域名称及有效性时间为10分钟;
2、fastcgi_cache_valid 200 302 10m;
fastcgi_cache_valid 301 1h;
fastcgi_cache_valid any 1m;#####定义各http响应状态码及其缓存有效时间
3、 fastcgi_cache_key $request_uri;###表示使用http请求的uri缓存后作为缓存键
4、fastcgi_cache fcgicache;####指明使用的fastcgi缓存的空间名
要使用缓存时,至少要配置好三个参数:
fastcgi_cache
fastcgi_cache_key
fastcgi_cache_valid
配置好fastcgi缓存后,可使用压力测试命令对缓存进行测试:
ab -c 10 -n 100 http:/ip/info.php :
![32]
测试可得出缓存能加速一定的响应时间。
nginx通过fastcgi模块与后端的php服务器(php-fpm.service)进行交互,完成动态数据处理后将动态数据与静态数据一起响应给客户端.