首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Nginx负载均衡设置

Nginx负载均衡设置

作者头像
星哥玩云
发布2022-08-13 11:20:39
发布2022-08-13 11:20:39
1.7K0
举报
文章被收录于专栏:开源部署开源部署

一、什么是负载均衡

  负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡,英文名称为 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

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文件
 3、启动NginxTomcat
 4、访问www.znzn.com/NginxServlet  2次
 5、控制台效果  80和81端口输出一次

四、设置权重

1、模拟集群

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

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文件
 3、启动Nginx和Tomcat
 4、访问www.znzn.com/NginxServlet  5次
 5、控制台效果  (底层算法默认先走一遍轮询)80输出2次 81输出1次

五、IP 绑定 

1、模拟集群

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

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文件
 3、启动Nginx和Tomcat
 4、访问www.znzn.com/NginxServlet 
 5、控制台效果  无论访问几次都只会在80端输出
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、什么是负载均衡
  • 二、负载均衡策略
    • 1、 轮询(默认)
    • 2、指定权重
    • 3、IP 绑定 ip_hash
    • 4、fair(第三方)
    • 5、url_hash(第三方)
  • 三、轮询(默认)
    • 1、模拟集群
    • 2、修改nginx.conf文件
    •  3、启动Nginx和Tomcat
    •  4、访问www.znzn.com/NginxServlet  2次
    •  5、控制台效果  80和81端口输出一次
  • 四、设置权重
    • 1、模拟集群
    • 2、修改nginx.conf文件
    •  3、启动Nginx和Tomcat
    •  4、访问www.znzn.com/NginxServlet  5次
    •  5、控制台效果  (底层算法默认先走一遍轮询)80输出2次 81输出1次
  • 五、IP 绑定 
    • 1、模拟集群
    • 2、修改nginx.conf文件
    •  3、启动Nginx和Tomcat
    •  4、访问www.znzn.com/NginxServlet 
    •  5、控制台效果  无论访问几次都只会在80端输出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档