• nginx配置代理转发,顺便写点负载均衡


    机器有限,我是nginx和服务放在了一台虚拟机

    虚拟机同一个项目启动两次,指定不同的端口号

     这是第一个,使用项目application.yml里配置的port:18888

     这是第二个,指定端口:28888

    接着是linux,直接上nignx.conf,重要配置

    http {

        #这里使用了负载均衡,默认是轮询策略,
        upstream backserver {
            server 127.0.0.1:18888;
            server 127.0.0.1:28888;
        }
       server {
            listen      80;
           # server_name  125.125.125.125;

            location /book {  #①
                #root   html;
                #index  index.html index.htm;
                proxy_pass http://backserver/book;#如果①处写了过滤词,那么转发的时候也要写到
            }
        }
    }

     weight就是权重策略,weight=2表示该服务请求是没配置的两倍,权重越高,概率越大 

     

        upstream backserver {

            server 127.0.0.1:18888 weight=2;

            server 127.0.0.1:28888;

        }

    ip_hash,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过

    哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,ip_hash不能与backup同时使用。

        upstream backserver {

            ip_hash;

            server 127.0.0.1:18888;

            server 127.0.0.1:28888;

        }

     least_conn

    把请求转发给连接数较少的后端服务器,有些请求占用的时间很长,会导致其所在的后端负载较高

    upstream backserver {
            least_conn;  #把请求转发给连接数较少的后端服务器
            server 127.0.0.1:18888 weight=2;

            server 127.0.0.1:28888;

    }

     fair(第三方)nginx需要下载配置fair模块,不能直接使用

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

        upstream backserver {

            fair;

            server 127.0.0.1:18888;

            server 127.0.0.1:28888;

        }

    url_hash(第三方)同样不能直接使用,需要下载配置

    配合缓存命中来使用,同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取

        upstream backserver {

            hash $request_uri; #实现每个url定向到同一个后端服务器

            server 127.0.0.1:18888;

            server 127.0.0.1:28888;

        }

  • 相关阅读:
    如何提高广告投放转化率?Share Creators 资产库与Appsflyer营销数据的全面结合
    【【STM32-29正点原子版本串口发送传输实验】
    图数据库&知识图谱
    乐鑫面试流程
    强网杯2022 pwn 赛题解析——yakacmp
    Tomcat
    渐变色毛玻璃形态卡悬停效果
    Nginx开启Brotli
    mysql笔记
    正点原子linux阿尔法开发板使用—pinctrl和gpio子系统
  • 原文地址:https://blog.csdn.net/qq_32037561/article/details/126543824