说明
Nginx的主要用途就是用来配置反向代理和负载均衡的。反向代理可以参考https://www.jianshu.com/p/47417f742bd4,负载均衡就是在反向代理的基础上,配置均衡策略
环境
为了方便演示,这里采用了本地的Nginx。win10+Nginx1.14.0。windows下的配置和Linux下的配置是一样的。关于Linux安装和基本命令,可以参考我前面的文章:https://www.jianshu.com/p/eef40430b5e2和https://www.jianshu.com/p/bc3aee44a18b
准备
首选,需要把www.localhost.com配置到hosts,映射到127.0.0.1。
然后需要准备一个springboot工程,实现一个简单地获取端口号的接口,如下:
这里用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;
}
网友评论