/ 中存储网

Nginx和PHP分服务的隔离配置

2013-09-02 22:54:32 来源:itjs.cn

####################################

#Nginx与php分离配置

#Author:楚霏

#Date: 2010-5-12

#Update: 2010-5-12

#Env: Centos 5.4 x86_64

####################################

一、准备工作

####################################

环境:Centos 5.4 x86_64

WEBServer IP: 10.0.0.240

PHPServer1 IP: 10.0.0.241

PHPServer1 IP: 10.0.0.242

####################################

二、思路

####################################

WEBServer:

1.只负责接收http请求并分发;

2.只安装nginx,不安装php;

3.只建/www/wwwroot目录,不存放php代码;

4.所有静态文件使用CDN。

PHPServer:

1.只负责处理php请求;

2.只安装php-fastcgi和mysql客户端;

3.建/www/wwwroot目录,最好从NFS文件服务器上挂载网站代码。

####################################

三、配置

####################################

#WEBServer:

#增加一行到nginx.conf

#----------------------------引用文字-开始----------------------------

include upstream.conf;

#----------------------------引用文字-结束----------------------------

#新加upstream配置文件

#vi /usr/local/nginx/conf/upstream.conf

#----------------------------引用文字-开始----------------------------

upstream FastCGIServers {

server 10.0.0.241:9000;

server 10.0.0.251:9000;

}

#----------------------------引用文字-结束----------------------------

#修改虚拟主机配置文件的fastcgi_pass为负载均衡指定的upstream值

#----------------------------引用文字-开始----------------------------

location ~ .php$ {

include fastcgi_params;

#fastcgi_pass unix:/tmp/php-fcgi.sock;

fastcgi_pass FastCGIServers;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /www/wwwroot/test.com$fastcgi_script_name;

}

#----------------------------引用文字-结束----------------------------

#PHPServer:

vi /usr/local/php-fcgi/etc/php-fpm.conf

#----------------------------引用文字-开始----------------------------

#把监听地址改为本机ip:port

#找到:

/tmp/php-fcgi.sock

#改为:

10.0.0.241:9000

#把请允许的客户端改为WEBServer的地址

#找到:

127.0.0.1

#改为:

10.0.0.240

#----------------------------引用文字-结束----------------------------

####################################

四、特点

####################################

1.扩展容易:增加一台php服务器,就不用配置nginx了,直接到nginx配置文件中增加一行即可

2.nginx配置全在一台机器,不再需要建太多虚拟主机,也不需要每台服务器hosts文件中解析自定义的域名

2.更好发挥各自优势,nginx只用来接收http请求,有望达到传说中的并发10万;php-fcgi也可以开更多的进程。

####################################