nginx+fastcgi+php5fpm负载均衡
Nginx反向代理负载均衡架构图(三台服务器为例)
![](http://img-my.csdn.net/uploads/201211/27/1354004149_3543.jpg)
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错误!