利用Nginx 实现负载均衡代理
为什么要选择Nginx
1,与Apache一样,都是HTTP服务器软件,在功能实现上都采用模块化设计,都支持通用语言接口,同时它还支持正向和反向代理,虚拟主机,URL重写,压缩传输,ssl加密传输等。但是,在执行效率上,Nginx处理速度更快,并且占用内存资源更低。除此之外,Nginx还支持Fcgi,这点是Apache所不能的。
2,Nginx的优势:处理静态文件,索引文件的效率非常高;可实现无缓存的反向代理加速,提高网站运行速度;作为负载均衡服务器,支持多种容错和算法;性能高效且稳定。
一共4台机器:
web1,web2分别为两台web服务器(可以用apache,nginx或者IIS搭建,这里就不详细说了)。网关指向192.168.1.5。两台web服务器上的网页内容,在实际工作环境中应该一致。这里为了验证效果,两台web服务器上的网页内容不一致。我这里为了方便在proxy上用links命令验证的效果如下
one.web.com http://192.168.1.3
two.web.com http://192.168.1.4
Proxy是一台安装了nginx服务器。
1,安装nginx
先安装pcre库,让nginx能够支持HTTPRewrite。这里我用已经配置好的本地YUM安装
yum –y install pcre*
安装nginx,参考文档。
配置nginx
为了方便直接配置好的内容如下
nginx.conf的具体内容如下
worker_processes 1; 指定nginx进程数,通常与CPU数相一致
events {
worker_connections 1024; 指定每个进程数最大连接数,默认1024
}
http {
upstreammyserver { 设置网络负载均衡,且取名为myserver (随便取)
server192.168.1.4 weight=4; 第一台web服务器地址,权重为4
server192.168.1.3 weight=3; 权重越大访问的几率越高
}
server {
listen 80; 侦听本机的端口
server_name 192.168.110.1 www.ex.com; 本机的哪个端口来做代理功能,域名为什么
indexindex.html; 默认读取的网页文件
location/ { 路径设置
proxy_pass http://myserver;指定代理的后端服务器地址和端口
}
error_page 500 502 503 504 /50x.html; 报错的页面文件
location =/50x.html {
root html;
}
}
}
启动nginx
参考:
http://www.linuxso.com/fuzai/17469.html