nginx+fastcgi+php5fpm负载均衡

Nginx反向代理负载均衡架构图(三台服务器为例)




Nginx负载均衡(图示:192.168.1.1:80服务器配置)

192.168.1.1:80虚拟主机角色

这里192.168.1.1:80虚拟主机基于nginx进行配置,这里主要的作用是webserver和负载均衡,接收客户端的请求,并且根据后端服务器的情况进行请求分发,实现负载均衡

upstream模块

nginx实现负载均衡模块主要利用了upstream模块,它提供了一个简单的方法将客户端的请求反向代理到后端服务器监听的虚拟主机上,实现负载均衡

server指令

语法:server_name [parameters]
使用环境:upstream
功能:该指令用户指定后端服务器名称和参数。服务器的名称具体指nginx或apache监听的虚拟主机,可以是域名、ip地址+端口号或unix socket
参数:
weight=[number]:设置服务器的权重,权重值越高,被分配到的客户端请求越多
max_fail=[number]:在参数fail_timeout指定的时间内对后端服务器请求失败的次数。
fail_timeout=[time]:在经历参数max_fail设置失败的次数后,暂停的时间
down:标记服务器为永久离线状态
backup:仅仅在非backup服务器全部宕机或繁忙的时候才启用

upstream示例配置

upstream icontact_pool {
	server	192.168.1.1:9000	weight=5	max_fails=3	fail_timeout=20s;
	server	192.168.1.2:9000	weight=3	max_fails=3	fail_timeout=20s;
	server	192.168.1.3:9000	weight=2	max_fails=3	fail_timeout=20s;
}

ngxin虚拟主机负载均衡配置

server {
	listen	192.168.1.1:80;
	server_name	192.168.1.1;

	access_log	/var/log/nginx/balance/loadbalance.access.log;	
	error_log	/var/log/nginx/balance/loadbalance.error.log;

	#允许列目录
	location / {
		root	/balance/;
		autoindex	on;
		autoindex_exact_size	off;
		autoindex_localtime	on;
		allow allow;
	}

	#proxy the php scripts to fpm_pool_upstream
	location ~ \.php$ {
		root	/balance;
		include	/etc/nginx/fastcgi_params;
		#将webserver接收的客户端请求通过fastcgi负载均衡到php5-fpm的池
		fastcgi_pass	icontact_pool;
	}
}



负载均衡服务器处理php请求

角色

192.168.1.1:9000、192.168.1.2:9000、192.168.1.3:9000为后端的三台负载均衡服务器监听的fpm地址和端口号,负载均衡服务器通过fastcgi将http请求和上下文参数发送给这个fpm池,然后fpm负责解析php程序

注意

三台服务器必须保证php的root目录有客户端需要的php文件,否则会出现404错误!




posted @ 2012-11-27 16:30  java程序员填空  阅读(301)  评论(0编辑  收藏  举报