利用Nginx 实现负载均衡代理

为什么要选择Nginx

  1,与Apache一样,都是HTTP服务器软件,在功能实现上都采用模块化设计,都支持通用语言接口,同时它还支持正向和反向代理,虚拟主机,URL重写,压缩传输,ssl加密传输等。但是,在执行效率上,Nginx处理速度更快,并且占用内存资源更低。除此之外,Nginx还支持Fcgi,这点是Apache所不能的。

2Nginx的优势:处理静态文件,索引文件的效率非常高;可实现无缓存的反向代理加速,提高网站运行速度;作为负载均衡服务器,支持多种容错和算法;性能高效且稳定。


一共4台机器:

web1web2分别为两台web服务器(可以用apachenginx或者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