Nginx使用Apache的php处理后台

Nginx本身不自带PHP处理模块,因此需要配置反向代理,将php请求交给其他的PHP解析器执行,然后返回结果给Nginx。

目前流行的方式是使用fast-cgi的方式配置PHP处理服务。其优点是比较简洁,服务器负载轻。但是缺点也是很明显的:无法查看php处理状态。

比如有时候网站因为负荷过高,php处理线程已经全部阻塞,就会造成网站无法再响应php服务。使用fastcgi方式,无法查看是哪些脚本处理时间过长,阻塞了php处理线程。

而Apache的优点就在于,可以很好的查看哪些php脚本处理时间过长,阻塞了有效进程数。

下面的方式是Nginx使用Apache的php处理后台:

配置好apache正确运行在8001端口。

修改nginx的虚拟主机配置,其他php脚本交由apache解析

location ~ \.php$ { 
proxy_pass http://127.0.0.1:8001; 
proxy_set_header Host $host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_connect_timeout 30; 
proxy_send_timeout 30; 
proxy_read_timeout 30; 
client_max_body_size 10m; 
client_body_buffer_size 128k; 
proxy_buffer_size 4k; 
proxy_buffers 4 32k; 
proxy_busy_buffers_size 64k; 
proxy_temp_file_write_size 64k; 
} 

 

重启nginx和apache

注意,如果要查看php的处理状态,安装使用apache的监控模块就可以了。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。