Nginx高端成长之路Nginx 服务器Nginx

Nginx配置负载均衡

2018-11-04  本文已影响3人  1ff5a98e5398

说明

Nginx的主要用途就是用来配置反向代理和负载均衡的。反向代理可以参考https://www.jianshu.com/p/47417f742bd4,负载均衡就是在反向代理的基础上,配置均衡策略


环境

为了方便演示,这里采用了本地的Nginx。win10+Nginx1.14.0。windows下的配置和Linux下的配置是一样的。关于Linux安装和基本命令,可以参考我前面的文章:https://www.jianshu.com/p/eef40430b5e2https://www.jianshu.com/p/bc3aee44a18b


准备

首选,需要把www.localhost.com配置到hosts,映射到127.0.0.1。
然后需要准备一个springboot工程,实现一个简单地获取端口号的接口,如下:

eclipse
这里用eclipse的原因是,eclipse可以一个main函数启动两遍,方便调试。先启动一个8080端口的,然后改成8081端口再启动一个。

负载均衡的几种配置策略

轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

指定权重

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

IP绑定 ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。


策略配置

轮询

这是Nginx的默认负载均衡的策略,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
配置如下:

upstream test_server {
        server 127.0.0.1:8080;
        server 127.0.0.1:8081;
    }
    
    server {
        listen 80;
        server_name www.localhost.com;
        location / {
            proxy_pass http://test_server;
            proxy_set_header Host $host;
        }
    
    
    }

这里不要漏掉了proxy_set_header Host $host配置,不然会转发失败。

指定权重

在轮询的基础上,设置weight值

upstream test_server {
        server 127.0.0.1:8080 weight=10;
        server 127.0.0.1:8081 weight=5;
    }

ip_hash

根据ip的hash值,固定的分配到一台服务器

upstream test_server {
        ip_hash;
        server 127.0.0.1:8080;
        server 127.0.0.1:8081;
    }
上一篇下一篇

猜你喜欢

热点阅读