nginx负载均衡

1. 准备三个tomcat容器,一个nginx容器

8081-->8080  tomcat  接收uri中带edu的请求
8082-->8080  tomcat  接收uri中带vod的请求
8083-->8080  tomcat  接收uri中带edu的请求
88-->80      nginx
http://ip/edu/book.html  这个请求会被分发到8081和8083两个tomcat上

[root@izuf6crq4k1mozjbsp7p09z conf.d]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                    NAMES
13f254089b6f   tomcat    "catalina.sh run"        54 minutes ago   Up 54 minutes   0.0.0.0:8083->8080/tcp   tomcat-jarvis-03
cf9087e92618   tomcat    "catalina.sh run"        4 hours ago      Up 4 hours      0.0.0.0:8082->8080/tcp   tomcat-jarvis-02
2cad9627b189   tomcat    "catalina.sh run"        5 hours ago      Up 5 hours      0.0.0.0:8081->8080/tcp   tomcat-jarvis-01
1ac4322faeee   nginx     "/docker-entrypoint.…"   5 hours ago      Up 47 seconds   0.0.0.0:88->80/tcp       nginx-jarvis

2. 配置default.conf

upstream nginxServer {  # 取名字不可加下换线"_"  nginx_server会报错
    server 172.16.166.67:8081;
    server 172.16.166.67:8083;
}
server {
    listen       80;
    listen  [::]:80;
    server_name  172.16.166.67;

    location ~ /edu/ {
       proxy_pass  http://nginxServer;  ###
   }
    location ~ /vod/ {
        proxy_pass  http://172.16.166.67:8082;
    }
  ...
}

3. 测试
在这里插入图片描述
在这里插入图片描述

说明:如果upstream的名称加了下划线,会报如下错误
在这里插入图片描述

分配策略

1. 轮询(默认):每个请求按时间顺序逐一分发到不同后端服务器。如果有一个服务器挂掉,能自动剔除。

2. weight:代表权重,默认为1。权重越多,服务器分到的请求数越多。如下示例:

upstream nginxServer {  
    server 172.16.166.67:8081 weight 2;
    server 172.16.166.67:8083 weight 3;
}

3. ip_hash:根据ip的hash值结果分配。每个访客访问固定服务器

upstream nginxServer {  
    ip_hash;
    server 172.16.166.67:8081;
    server 172.16.166.67:8083;
}

4. fair:根据响应时间进行分配

upstream nginxServer {  
    fair;
    server 172.16.166.67:8081;
    server 172.16.166.67:8083;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值