• 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;

        }

  • 相关阅读:
    为什么需要 HCM 软件?
    Linux安装 vmware workstation
    一文探索【skywalking】如何通过agent实现启动流程
    win操作系统切换窗口
    什么是作业指导书sop?sop作业指导书是什么意思?
    常用的电源防反接电路
    nnDetection复现Luna16 附模型
    为什么Redis默认序列化器处理之后的key会带有乱码?
    企业微信的自动下班是什么意思?
    前后端都用得上的 Nginx 日常使用经验
  • 原文地址:https://blog.csdn.net/qq_32037561/article/details/126543824