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;

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值