nginx的反向代理与负载均衡

1、概念:

        

正向代理:客户端明确被访问服务器

反向代理:客户端不清楚被访问服务器,只清楚代理服务器

负载均衡

2、nginx负载均衡的实现

    2.1、什么是http upstream 模块

upstream mypro  {

}

server{

    location /{

        proxy_pass hhtp://mypro;

    }

}

主要实现轮询算法

ip_hash 指令

将通一个用户引入同一个服务器

upstream mypro{

    ip_hash;//同一个ip用户,会一直访问第一次进入的服务器。

    server www.baiud.com;

    server   www.jd.com;

}

权重和ip_hash是冲突的,不能同事使用

2.2、server 指令(服务器权重)

upstream mypro{

    server www.baiud.com weight=2;//被访问权重是2/3,

     server   www.jd.com;//被访问权重是1/3

}

其它负载均衡实现(硬件实现,软件实现:服务器软件,系统软件等)

2.3 backup;

upstream mypro{

    server www.baiud.com weight=2;//被访问权重是2/3, 值越大,负载越大

     server   www.jd.com;//被访问权重是1/3

    server   www.taobao.com backup; //备份机,只有非备份机都挂掉了才启用

}

2.4 down;

  upstream mypro{

    server www.baiud.com weight=2;//被访问权重是2/3,

     server   www.jd.com;//被访问权重是1/3

    server   www.taobao.com down; //停机标志,不会被访问

}

整体配置:

负载均衡策略:

1.none(轮询,权重油weight决定)

2.ip_hash 根据客户端第一次分配的机器,以后都是这台机器

//下面是第三方提供的

3.fair 动态的根据后端服务器的负载能力进行选择

4.url_hash 根据客户端url信息分配服务器(适合访问一些图片,静态页面等)

3、nginx+tomcat 负载均衡配置

反向代理:

负载均衡

3.1负载均衡配置实现

2.5、下载第三方模块

     如果nginx没有安装

     1.

     如果nginx安装后:

     2.执行make 然后在nginx的安装目录里的objs目录里nginx(添加了第三方的编译文件),

    3.关闭nginx

    4.用objs里的nginx 替换到sbin/里的nginx文件

3.2 负载均衡时session 的处理策略

        1.将用户锁定在一个服务器上 优点:简单 缺点:缺乏容错性

        2.session 复制 优点:会及时同步session信息 缺点:网络压力

            实现方式: 在tomcat里的server-session-replication.xml 开启session复制

         然后在应用代码中。web.xml中设置,应用可以支持session复制

测试或者验证时,可以创建一个session监听器实现 httpSessionAttributeListener

    3.session共享,将服务器里的session放在同一个地方

       1.黏性session 

          不同的tomcat指定一个memcached,tomcat 主存储

           2.非黏性session

             tomcat 不存储session 

           

             实现方式:非黏性配置

       

3.3 集群环境中应用代码应注意的问题

1.实体类序列化支持 一般是session 实体类 根据版本号

2.获取用户ip地址的方式,在代理

在代码中获取ip里的head里的上述配置选项

其它头配置信息

动静分离结构的预规划

1.静态资源(单独服务器)

猜你喜欢

转载自blog.csdn.net/shenchengxinsunwei/article/details/84369866
今日推荐