• nginx正反向代理、负载均衡


    nginx

    正向代理:

    ​ 1、由客户端发起。

    ​ 2、代理服务器 目标服务器明确。

    反向代理:


    1、反向代理配置在服务端。

    ​ 2、客户端不知道访问那一台服务器。

    ​ 3、达到负载均衡,隐藏服务器真正ip地址。

    nginx location 路径映射 匹配方式及优先级


    ​ server块中根据优先级写,先写优先级高的

    Nginx负载均衡算法(Nginx upstream)

    1、轮询(默认)

    ​ 按照请求时间顺序分配不同的后端服务,如果故障机器出现故障,自动剔除。

    upstream bakend {  
    	server 192.168.0.1;    
    	server 192.168.0.2;  
    }
    

    2、weight(轮询权值)

    ​ weight的值越大该服务器访问概率越高,主要用于服务器性能不均很的情况,或者仅仅为在主从的情况下设置不同的权值,达到合理的利用主机资源。

    upstream bakend {  
    	server 192.168.0.1 weight=10;  
    	server 192.168.0.2 weight=20;  
    }
    

    3、ip_hash

    ​ 请就按照哈希算法结果分配,同一个IP固定访问同一个服务器,可以解决动态网页存在的session共享问题。

    upstream bakend {  
        ip_hash;
    	server 192.168.0.1:8089 weight=10;  
    	server 192.168.0.2:8090 weight=20;  
    }
    

    4、fair(第三方)

    ​ 根据页面大小和加载时间长短智能的分配服务器进行负载均衡,也就是根据后端服务器响应时间来动态地分配服务器,响应时间短的优先分配。

    ​ 注:如果使用这种必须安装upstream_fair模块。

    upstream bakend {  
    	server 192.168.0.1:8089 weight=10;  
    	server 192.168.0.2:8090 weight=20;  
    	fair;
    }
    

    5、url_bash(三方)

    ​ 按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包。

    ​ 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效

    ​ 注:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。

    upstream bakend {  
    	server 192.168.0.1:8089 weight=10;  
    	server 192.168.0.2:8090 weight=20;  
        hash $request_uri;
    }
    

    upstream状态

    ​ down 表示单前的server暂时不参与负载.

    ​ weight 默认为1.weight越大,负载的权重就越大。

    ​ max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.

    ​ fail_timeout : max_fails次失败后,暂停的时间。

    ​ backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

    upstream bakend{ 
          ip_hash; 
          server 192.168.0.1:9090 down; 
          server 192.168.0.1:8080 weight=2; 
          server 192.168.0.1:8089; 
          server 192.168.0.1:8090 backup; 
    }
    
  • 相关阅读:
    5个最佳WordPress通知栏插件
    最新lombok插件和IDEA2020.1不兼容,Plugin "Lombok" is incompatible (until build 193.SNAPSHOT < IU-201.6668....
    nuxt中localstorage的替代方案
    nuxt或者vue,axios中如何发送多个请求
    wordpress nginx详细环境配置安装命令和相关问题解决
    [no_perms] Private mode enable, only admin can publish this module
    vue bootstrap中modal对话框不显示遮挡打不开
    vue监听当前页面的地址变化/路由变化
    来看看JDK13的81个新特性和API
    Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test java.lang.IllegalStateException
  • 原文地址:https://www.cnblogs.com/pengcool/p/15516508.html
Copyright © 2020-2023  润新知