nginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司的的负载均衡都是nginx所以决定研究一下nginx的这个功能实现,下面简单介绍一下实现方法:

nginx实现负载均衡,nginx负载均衡

nginx实现负载均衡

  Nginx的作用和优点,这里不必多说,今天主要是nginx负载均衡实验,把做的步骤记录下来,作为一个学习笔记吧,也可以给大家做下参考。

  1.Nginx安装
    1.下载地址:
    2.解压到后在window的cmd窗口,输入如下图所示的命令,进入到nginx目录,使用“start
nginx.exe ”进行nginx的安装,如下图所示:

         
  金沙城中心赌场 1
    安装成功后,在“任务管理器”中会看到“nginx.exe”进程。
    3.在浏览器地址栏输入:127.0.0.1,会看到nginx欢迎界面。说明Nginx已经安装成功。

  2.站点搭建及配置
    1.搭建两个iis站点
      新建一个站点下只有一个简单的index页面,将两个站点都部署到本机了,分别绑定了8097和8098两个端口。

    2.修改nginx配置信息,nginx的配置信息,都在nginx.conf
,这个文件中配置。
     a.修改nginx监听端口,修改http server下的listen节点值
      listen 8096;

     b.在http节点下添加upstream(服务器集群),server设置的是集群服务器的信息,我这里搭建了两个站点,配置了两条信息。
      #服务器集群名称为test.com
      upstream test.com {
        server 127.0.0.1: 8097;
        server 127.0.0.1: 8098;
      }
     c.在http节点下找到location节点修改
      location / {
        root html;
        index index.aspx index.html index.htm;
#修改主页为index.aspx
        #其中test.com 对应着upstream设置的集群名称
        proxy_pass http:// test.com;
        #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
        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服务,

  3.运行结果
    访问
    金沙城中心赌场 2金沙城中心赌场 3
    可以看到,我们的请求被分发到了8097站点和8098站点,说明负载均衡搭建成功了。
    停掉8098站点,刷新页面,则请求会分发给8097 站点,
说明其中一个站点挂了,只要还有一个站点是好的,系统仍然能够继续提供服务。

  4.session共享
    a.使用数据库保存session信息,可以查看本人前一篇文章:数据库实现多站点共享Session
    b.使用nginx将同一ip的请求分配到固定服务器,修改如下。ip_hash会计算ip对应hash值,然后分配到固定服务器,(这个还没试验过)
      upstream test.com {
        server 127.0.0.1: 8097; 
        server 127.0.0.1: 8098; 
        ip_hash;
      }
    c.搭建一台Redis服务器,对session的读取都从该Redis服务器上读取。

nginx实现负载均衡
Nginx的作用和优点,这里不必多说,今天主要是nginx负载均衡实验,把做的步骤记录下来…

  www.2cto.com  

1.下载module模块

下载地址 :        
$ wget ”

 

        $ tar -xzvf nginx-1.2.1.tar.gz

        $ cd nginx-1.2.1/

        $ patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch
 /path是指nginx_tcp_proxy_module路径

        $  ./configure –add-module=/usr/local/ngx_cache_purge-1.4
 –prefix=/usr/local/nginx –with-http_stub_status_module
–add-module=/path/to/nginx_tcp_proxy_module   //编译

        $ make

        $ make install

 

2、修改nginx配置文件:

  http {

        server {

            listen 80;

            location /status {

                check_status;

            }

        }  www.2cto.com  

    }

tcp {

      upstream mysql{

      server 10.10.10.17:3306 weight=1;

      server 10.10.10.18:3306 weight=1;

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图