Nginx配置负载均衡

作者: 1ff5a98e5398 | 来源:发表于2018-11-04 12:08 被阅读3次

    说明

    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;
        }
    

    相关文章

      网友评论

        本文标题:Nginx配置负载均衡

        本文链接:https://www.haomeiwen.com/subject/nzerxqtx.html