阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx负载均衡设置

282次阅读
没有评论

共计 2834 个字符,预计需要花费 8 分钟才能阅读完成。

一、什么是负载均衡

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服 务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡,英文名称为 Load Balance,其意思就是分摊到多个操作单元上进行执行,例如 Web 服务器、FTP 服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完 成工作任务。

二、负载均衡策略

1、轮询(默认)

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

2、指定权重

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

3、IP 绑定 ip_hash

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

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

5、url_hash(第三方)

按访问 url 的 hash 结果来分配请求,使每个 url 定向到同一个后端服务器,后端服务器为缓存时比较有效。

三、轮询(默认)

1、模拟集群

设置两个 Tomcat 同时访问一个 servlet

Nginx 负载均衡设置

import Javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(“/NginxServlet”)
public class NginxServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println(“Nginx 负载均衡!”);
        System.out.println(“ 当前访问端口:”+request.getServerPort());
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

2、修改 nginx.conf 文件

Nginx 负载均衡设置

 

 3、启动 Nginx 和 Tomcat

 4、访问 www.znzn.com/NginxServlet  2 次

Nginx 负载均衡设置

 5、控制台效果  80 和 81 端口输出一次

Nginx 负载均衡设置

Nginx 负载均衡设置

四、设置权重

1、模拟集群

设置两个 Tomcat 同时访问一个 servlet

Nginx 负载均衡设置

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(“/NginxServlet”)
public class NginxServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println(“Nginx 负载均衡!”);
        System.out.println(“ 当前访问端口:”+request.getServerPort());
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

2、修改 nginx.conf 文件

Nginx 负载均衡设置

 3、启动 Nginx 和 Tomcat

 4、访问 www.znzn.com/NginxServlet  5 次

Nginx 负载均衡设置

 5、控制台效果(底层算法默认先走一遍轮询)80 输出 2 次 81 输出 1 次

Nginx 负载均衡设置

 Nginx 负载均衡设置

五、IP 绑定 

1、模拟集群

设置两个 Tomcat 同时访问一个 servlet

Nginx 负载均衡设置

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(“/NginxServlet”)
public class NginxServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println(“Nginx 负载均衡!”);
        System.out.println(“ 当前访问端口:”+request.getServerPort());
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

2、修改 nginx.conf 文件

Nginx 负载均衡设置

 3、启动 Nginx 和 Tomcat

 4、访问 www.znzn.com/NginxServlet 

 5、控制台效果  无论访问几次都只会在 80 端输出

 Nginx 负载均衡设置

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2834字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中