本文只讲解进行负载均衡的反向代理及memcache的使用,至于MYSQL服务器的话,因为是直接使用PHP进行连接的,所以作者就不怎么讲解了
实战LANMP负载均衡部署1-实现NGINX反向APACHE服务器集群
本机:Windows 7
VM虚拟机: CentOS 64 * 3
修改本机的hosts文件,添加
192.168.0.210 www.ipanying.com
192.168.0.210 ipanying.com
负载均衡使用循环反向代理模式
因为实际项目部署的话,肯定不能使用IP,而且作者详细开发部署的时候,也是会对IP进行限定的
服务器的部署为yum源
服务器部署为:
192.168.0.210 NGINX实现负载均衡及memcache #只编译NGINX+memcache
#由于电脑只有8GB的内存,不能再开启更多的VM了
192.168.0.220 APACHE处理PHP程序 #只编译APACHE+PHP
192.168.0.230 APACHE处理PHP程序 #只编译APACHE+PHP
服务器:192.168.0.210
如果不会编译请参考yum安装nginx
service nginx restart
服务器:192.168.0.220/230
yum install -y httpd php php-mysql php-gd php-xml php-mbstring
service httpd restart
接着在两台APACHE服务器上的/var/www/html/添加index.php
vi /var/www/html/index.php
220的IP写入:
192.168.0.220 <br>
<?php echo phpinfo();?>
230的IP写入:
192.168.0.230 <br>
<?php echo phpinfo();?>
service iptables stop
关闭防火墙来访问: 你也可以设置220、230的IP服务器只允许210访问,具体细节自行GOOGLE
如果可以看到该数据,说明访问成功
看看NGINX是否运行正常: #记得关闭防火墙
访问:192.168.0.210
由于只对单一的站点测试,所以不需要修改太多的NGINX配置
本机访问:www.ipanying.com 因为hosts的关系,会跳转到192.168.0.210的服务器,然后根据反向条件反向请求给220/230服务器。
而且220/230的服务器的端口默认就为80
NGINX(210服务器上)
添加/var/www/html/index.php 空文件,因为PHP文件会进行反向给APACHE服务器集群
接着修改/etc/nginx/nginx.conf
在httpd{}节点内添加:
upstream ipanying{
server 192.168.0.220:80;
server 192.168.0.230:80;
}
修改/etc/nginx/conf.d/defautl.conf文件
server{}节点内添加:
location ~ .*\.(php?|cgi|pl|py)$ {
proxy_pass http://ipanying;
}
这时候,访问www.ipanying.com
输出的IP就不同了:
192.168.0.220 或 192.168.0.230
因为这两台服务器上的index.php文件最上面都有写入,看的出文字的变化
这样,NGINX反向PHP给APACHE集群的负载均衡就算完成了
注:APACHE集群内有的PHP文件在NGINX必须也存在,否则访问NGINX文件不存在就会403错误,除非URL直接添加才会反向给APACHE;
而且NGINX有PHP的代码文件存在,实际上是不响应任何请求动作的,只是作为一个反响跳转的一个需求而已
至于APACHE进行域名验证作者也不去写了,配置下vhost就是了,因为只是后端交互,所以没多大的关系,直接修改端口或者防火墙限制IP
关于作者