nginx+fastcgi+php5fpm负载均衡

本文详细介绍了如何使用Nginx实现负载均衡,包括upstream模块的使用、虚拟主机配置以及处理PHP请求的参数配置。

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:8001	weight=5	max_fails=3	fail_timeout=20s;
	server	192.168.1.2:8002	weight=3	max_fails=3	fail_timeout=20s;
	server	192.168.1.3:8003	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 nginx_pool_upstream
	location ~ \.php$ {
		proxy_pass	http://icontact_pool;
		proxy_redirect	off;
		rewrite ^([^.]*[^/])$ $1/ permanent;
		
		proxy_next_upstream	error timeout invalid_header http_500 http_502 http_503;

		proxy_set_header	HOST	$host;
		proxy_set_header	X-Real-IP	$remote_addr;
		proxy_set_header	X-Forwarded-For	$proxy_add_x_forwarded_for;
	}
}

nginx处理php请求

角色

192.168.1.1:8001、192.168.1.2:8002、192.168.1.3:8003虚拟主机配置基于nginx,这里作用是首先作为webserver,处理前端负载均衡nginx虚拟主机分配过来的流量,然后调用fastcgi程序,通过fastcgi调用php5-fpm处理客户端指定的php程序

参数配置

具体的参数配置可以参见我之前的一篇博客, 点击打开链接

示例配置文件

upstream fastcgi_php5_fpm {
	#1.fastcgi和fpm这里通过tcp连接2.upstream池的名字不要冲突
	server	127.0.0.1:9000;
}

server {
	listen	192.168.1.1:8001;
	server_name	192.168.1.1;

	access_log	/var/log/nginx/balance/one.access.log	main;	
	error_log	/var/log/nginx/balance/one.error.log;

	#proxy the php scripts to php-fpm
	location ~ \.php$ {
		root /balance/;
		#注意对SCRIPT_NAME的修改
		include	/etc/nginx/fastcgi_params;
		fastcgi_pass	haolianxi_php;
	}
}



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值