Chinaunix首页 | 论坛 | 博客
  • 博客访问: 694116
  • 博文数量: 143
  • 博客积分: 1554
  • 博客等级: 上尉
  • 技术积分: 1767
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-10 11:50
文章分类

全部博文(143)

文章存档

2017年(2)

2016年(5)

2015年(16)

2014年(25)

2013年(27)

2012年(16)

2011年(52)

分类: 架构设计与优化

2014-01-12 23:40:01

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

目前流行的方式是使用fast-cgi的方式配置PHP处理服务。其优点是比较简洁,服务器负载轻。但是缺点也是很明显的:无法查看php处理状态。
比如有时候网站因为负荷过高,php处理线程已经全部阻塞,就会造成网站无法再响应php服务。使用fastcgi方式,无法查看是哪些脚本处理时间过长,阻塞了php处理线程。
而Apache的有点就在于,可以很好的查看哪些php脚本处理时间过长,阻塞了有效进程数。

下面的方式是使用Apache最为Nginx的php处理后台:
1、先安装apache
apt-get install apache
并配置好apache正确运行在8001端口。
2、修改nginx的虚拟主机配置,其他php脚本交由apache解析
location ~ \.php$ {
proxy_pass
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的监控模块就可以了。
阅读(2187) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~