• Nginx配置3-反向代理&负载均衡


    Nginx配置3-反向代理&负载均衡

    部署架构

    IP 主机名 系统软件版本 描述
    10.24.1.16 app-node1 Tomcat & Nginx1.16.0 app-node1应用服务器
    10.24.1.17 app-node2 Tomcat app-node2应用服务器

    配置文件

    #设定负载均衡的服务器列表
    upstream app_cluster { 
      sticky;
          server  10.24.1.16:7001; 	weight=10 down max_fails=3
          server  10.24.1.17:7001;  weight=5 backup max_conns=800;
     } 
    # down:表示当前的server暂时不参与负载 
    # weight:默认为1,weight越大,负载的权重就越大。 
    # backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。
    
    # max_conns=800	根据不同机器配置设置最大连接数,防止挂掉
    # max_fails=3 	失败3次认为是宕机然后会自动从负载中摘除
    
     
     #虚拟服务器信息
    server {
            listen       80;				
            server_name  10.24.1.16;         #IP模式服务器名称
    	   ......	
         #配置资源规则
    	location / {
        	#反向代理至weblogics服务器列表
            proxy_pass         http://app_cluster;
            #反向代理的一些配置,将主机跟真实IP写入HTTP头中
            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支持的负载均衡策略有很多,比如round robin(轮询)、random(随机)、weight(权重)、fair(按响应时长)、url_hash(url的hash值)、ip_hash(ip的hash值)、least_conn(最少连接数)等等,具体选用哪种策略要根据要达到的目标来选择。

    常用配置

    1. 轮询(默认)
    2. weight权重

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

    指定轮询几率weight和访问比率成正比,用于后端服务器性能不均的情况。

    业务粘性优先

    1. ip_hash
    2. url_hash(第三方)
    3. sticky(nginx-sticky-module)

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

    通过访问url的hash来分配请求,使每个URL定向到同一个放置服务器,从而使服务器为缓存时比较有效。

    与ip_hash算法无法共存,为后台各真实服务器设置一个唯一的route值,并通过cookie的方式返回到客户端,同一次 会话对应后台同一台真实物理机,cookie为默认为会话级,如果不设置expires过期时间那么关闭浏览器会话就失效。

    性能优先

    1. fair(nginx-upstream-fair)

    2. least_conn(最少连接数)

    3. weight

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    按照保持的连接数。一般来说保持的连接数越少处理的任务越少,资源越空闲,可以交由这台机器处理。

    从经验或硬件上把性能好的机器设置的权重高一些。

    健康检查

    location /status {
    	check_status;
    }
    
  • 相关阅读:
    org.dom4j.DocumentException: Error on line 1 of document: 前言中不允许有内容
    学习过程中的随手笔记
    IT技术团队行而有效的管理之道
    九宫格抽奖HTML+JS版
    Nginx负载均衡深入浅出
    PHP 二维数组根据某个字段排序
    MYSQL INSERT INTO SELECT 不插入重复数据
    小米2成功使用google组件的办法(为了coc游戏能登录google账户)
    PHP 数组排序方法总结
    普通标和转让标的回款和还款日期的算法。
  • 原文地址:https://www.cnblogs.com/elfcafe/p/13264142.html
Copyright © 2020-2023  润新知