本地使用docker配置nginx模拟负载均衡

利用docker在本地搭建三个nginx容器,三个nginx容器在同一网段,可以互通。
容器分别如下
nginx1:172.18.0.2 ,担任负载均衡转发服务器
nginx2:172.18.0.10 ,担任请求处理服务器
nginx3:172.18.0.11 ,担任请求处理服务器

负载均衡的请求过程如下

用户
负载均衡服务器
服务器1
服务器2
服务器n

在nginx1中负载配置:

# fuzai.conf 配置如下
# backend 为组名,组名设置在 proxy_pass http://backend; 语句
upstream backend {
	server 172.18.0.10:81 weight=2;
	server 172.18.0.11:81 weight=1;
}

server {
	listen 80;
    server_name local.fuzai.com;
        location / {
            proxy_pass http://backend;
        }
    }

nginx2中配置:

server {
    listen 81;
    server_name localhost;
    root /var/www/html;

    location / {
        return 200 'i am nginx2';
    }
}

nginx3中配置

server {
    listen 81;
    server_name localhost;
    root /var/www/html;

    location / {
        return 200 'i am nginx3';
    }
}

curl本地访问http://local.fuzai.com ,则会得到

root@db3f:/# curl local.fuzai.com
i am nginx2
root@db3f:/# curl local.fuzai.com
i am nginx2
root@db3f:/# curl local.fuzai.com
i am nginx3
root@db3f:/# curl local.fuzai.com
i am nginx2
root@db3f:/# curl local.fuzai.com
i am nginx2
root@db3f:/# curl local.fuzai.com
i am nginx3

至此,nginx简单的负载均衡,就完成了。

尾声

nginx的负载配置字段,可以参考 ngx_http_upstream_module 模块

负载均衡分发规则等等,具体可参考官方文档HTTP负载均衡

负载均衡转发服务器中组中 server 172.18.0.10:81 weight=2;,如果一台机子为多个负载请求处理服务器,则建议一个项目一个端口,否则无法区分不同项目(当然,你用域名后紧跟的目录区分除外,这也不科学),因为域名是解析到负载转发服务器上。所以,ip + 端口可以唯一区分项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值