nginx配置实例 - 负载均衡

一、预期效果

在外部主机的浏览器多次访问http://服务器ip地址/edu/a.html,请求平均分发给两台Tomcat服务器,从而在页面上轮流出现“8080”和“8081” 字符。

二、准备工作

在上一个实例中,部署了两台Tomcat服务器,分别占用80808081端口。
现在,在8081端口的Tomcat的webapps目录中新建edu目录,并把a.html文件复制到其中。
相关命令如下:

cd /usr/src/tomcat8081/apache-tomcat-9.0.55/webapps
mkdir edu
cp vod/a.html edu/

然后,启动两台Tomcat服务器。

三、nginx配置

接下来,进入nginx安装目录下的conf目录,修改nginx.conf文件中的配置信息。
首先,在http块内新增upstream配置:

# upstream中的server属性值记录的是目标服务器的地址
# myserver是自定义名称,可以不同
upstream myserver {
    server 192.168.x.x:8080; #因为有两台Tomcat服务器,所以这里用两个server来记录
    server 192.168.x.x:8081;
}

然后,在server块中配置路由信息:

server {
    listen   80;
    server_name   192.168.x.x;
    location / {
        proxy_pass   http://myserver;
        root   html;
        index   index.html index.htm;
    }
}

最后,启动nginx。

四、测试

在收到请求时,由于proxy_pass字段值的myserverupstream变量,所以nginx会找到名为myserverupstream,根据其中的server信息来找到服务器,并按指定策略(默认是轮询)来转发请求。
在外部主机的浏览器上两次访问http://192.168.x.x/edu/a.html,出现如下效果,则为成功:
nginx配置实例 - 负载均衡_第1张图片
nginx配置实例 - 负载均衡_第2张图片

五、负载均衡策略

nginx的负载均衡策略有以下四种:

策略 关键字 效果
轮询 - 平均分发请求到各个服务器
权重 weight 权重越大,分配到的请求越多
IP哈希 ip_hash 根据客户端IP的哈希来固定访问某台服务器,可以解决session问题
fair fair 按服务器的响应时间来选择接收请求的服务器

1.轮询

默认情况下,nginx负载均衡策略就是轮询

upstream myserver {
    server 192.168.x.x:8080;
    server 192.168.x.x:8081;
}

2.权重

使用权重策略,只需在服务器地址后配置weight值即可:

upstream myserver {
    server 192.168.x.x:8080 weight=10;
    server 192.168.x.x:8081 weight=1;
}

默认的权重是1,这也能说明为什么默认情况下请求会平均分配给各个服务器。

3.ip哈希

在upstream中配置ip_hash,即可使用ip哈希策略:

upstream myserver {
    ip_hash;
    server 192.168.x.x:8080;
    server 192.168.x.x:8081;
}

4.fair

在upstream中配置fair,即可使用fair策略:

upstream myserver {
    fair;
    server 192.168.x.x:8080;
    server 192.168.x.x:8081;
}

六、总结

在服务访问量较大的情况下,选择合理的负载均衡策略来配置nginx,可以有效的降低服务器的压力,提高请求的处理效率。

你可能感兴趣的:(nginx学习笔记,nginx,linux,tomcat,bash)