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的监控模块就可以了。

留下评论

鄂ICP备13000209号-1

鄂公网安备 42050602000277号