nginx可以配置负载均衡,我们可以通过配置实现nginx负载均衡。这里部署了两个服务producter-one和producter-one2。
upstream proxyproducter-one {
server producter-one:8080 weight=1;
server producter-one2:8080 weight=1;
}
# 访问其他服务
server {
listen 9090;
server_name localhost;
charset utf-8;
access_log /etc/nginx/logs/localhost9090.access.log access;
# 路由
location /nginxproducterone {
proxy_pass http://proxyproducter-one/;
}
}
1.启动nginx之前
如果在启动nginx之前,如果其中一个服务宕机正常情况下,nginx是不能启动的启动会报错。
2.正常启动之后
正常启动之后nginx会按照配置的策略进行执行,这里我使用的负载均衡轮询策略。
3.宕机其中一个服务
如果我们宕机其一个服务,
a.第一次请求,如果请求刚好能访问到没有宕机的服务,则是正常相应。
b.第一次请求,如果请求访问到宕机的服务,请求最终还是会指定正常的服务但是请求时间非常长 。
c.如果宕机一直存在,则nginx会将权重比例偏向正常的服务。
当我们继续访问,则会出现请求时间长的正常请求(怀疑nginx会把权重偏向正常的服务,但是也会不定期的指向宕机的服务,当访问宕机服务失败后再去访问正常的服务)。
d.宕机的服务恢复正常,ngin会自动将负载均衡策略恢复到配置的状态