Niginx 集群负载均衡策略

Niginx 集群负载均衡策略

 

 所需物料

1.Nginx服务

步骤略

本人 nginx version: nginx/1.16.0

 

2.Java Servlet 测试项目

新建java web 项目,项目名称为:tt

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/IndexServlet")
public class IndexServlet extends HttpServlet {private static final long serialVersionUID = 1L;public IndexServlet() { }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//输出Session的IdSystem.out.println("[session-id]\t"+request.getSession().getId());//制造网络请求延迟效果try {System.out.println("[-线程睡眠中-]");Thread.sleep(3000);System.out.println("[-线程睡眠结束-]");} catch (InterruptedException e) {e.printStackTrace();}System.out.println("");System.out.println("");System.out.println("");response.getWriter().append("Served at: ").append(request.getContextPath());}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

3.tomcat部署服务

共启用了3个Tomcat,服务端口分别是:8081、8082、8083;

分别访问 http://localhost:8081/tt/index

分别访问 http://localhost:8082/tt/index

分别访问 http://localhost:8083/tt/index

进行服务验证,看服务是否可以正常访问

 

 

 ----------------------------好戏开始了----------------------------

集群调度:轮询(默认)

调度规则:轮询调取集群中的服务;

修改 nginx.conf 配置文件,重启Nginx;

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;#配置集群集合upstream tomcatserver1 {server 127.0.0.1:8081;server 127.0.0.1:8082;   server 127.0.0.1:8083;     } server {  listen       80;  server_name  localhost;  location / {  proxy_pass   http://tomcatserver1;  index  index.html index.htm;  } error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

浏览器多次访问  http://localhost/tt/index 进行测试。会看到3个Tomcat 被轮训调用。

 

集群调度:ip_hash

调度规则:同一个session会被分配到同一个 服务中,主要解决集群session问题;

修改 nginx.conf 配置文件,重启Nginx;

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;#配置集群集合upstream tomcatserver1 {#调度方式 ip_haship_hash; server 127.0.0.1:8081;server 127.0.0.1:8082;   server 127.0.0.1:8083;     } server {  listen       80;  server_name  localhost;  location / {  proxy_pass   http://tomcatserver1;  index  index.html index.htm;  } error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

集群调度:Weight

调度规则:根据权重来处理,权重越高被调用的概率越高,主要用于后端服务器性能不均的情况;

修改 nginx.conf 配置文件,重启Nginx;

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;#配置集群集合upstream tomcatserver1 {#调度方式 Weightserver 127.0.0.1:8081 weight=3;server 127.0.0.1:8082 weight=2;   server 127.0.0.1:8083 weight=1;     } server {  listen       80;  server_name  localhost;  location / {  proxy_pass   http://tomcatserver1;  index  index.html index.htm;  } error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

集群调度:url_hash

调度规则:相同的url地址会被分配到同一个服务器,用于缓存数据,如:我将系统图片都缓存在了8081、8082服务器,每当我请求图片的时候必须去请求8081 或 8082服务器;

修改 nginx.conf 配置文件,重启Nginx;

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;#配置集群集合upstream tomcatserver1 {#调度方式 url_hashhash $request_uri;server 127.0.0.1:8081;server 127.0.0.1:8082;   server 127.0.0.1:8083;     } server {  listen       80;  server_name  localhost;# 假如请求静态资源的路径格式是 localhost:80/tt/state/xx/xx/……		location /tt/state {  proxy_pass   http://tomcatserver1;  index  index.html index.htm;  } error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}}

 

 

转载于:https://www.cnblogs.com/devan/p/11237016.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记号一次更换IBM X3650M4主板后RAID无法启动的解决

https://wenku.baidu.com/view/9d503ef367ec102de2bd89d7.html 强烈感谢上面分享文档的大侠!! 1、更换主板后,linux系统,无法加载引导。需要设置主板的启动项 2、选择boot manager,进到下面的画面 3、选择add boot opt…

WCF basicHttpBinding之Message Security Mode

原创地址:http://www.cnblogs.com/jfzhu/p/4067873.html 转载请注明出处 前面的文章《WCF Security基本概念》介绍了WCF的security mode,简单说Transport是transport级别上的加密&am…

云计算学习资料分享:type查看命令

type 查看命令类型,例如该命令是alias,还是内置命令,还是某个文件,还是关键字 哪种神仙:天上还是地上,还是水里游的 [roottianyun ~]# type ll ll is aliased to ls -l --colorauto [roottianyun ~]# type …

关于83版射雕英雄传

今天无意中看到网上一群人关于83版射雕的一些争论.或许一些现在的年轻人不喜欢83版射雕,说那太老土了,但想想那个时代的条件,能拍出这样的片子,是非常不错的,而且我觉得83版射雕也是最忠于原著的,跟后来的翻版比较,虽然从画面效果,人物服装方面存在差距,但这都是由于历史原因和…

电子书下载:Programming Microsoft LINQ in Microsoft .NET Framework 4

Book DescriptionDig into LINQ — and transform the way you work with data. With LINQ, you can query data from a variety of sources — including databases, objects, and XML files — directly from Microsoft Visual Basic or C#. Guided by data-access experts w…

原型模式 —— Java的赋值、浅克隆和深度克隆的区别

赋值 直接 ,克隆 clone 假如说你想复制一个简单变量。很简单: int a 5; int b a; b 6;这样 a 5, b 6 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。 但是如果你复制的是一个…

[scrum]2011/9/24-----第四天

scrum 总结: Team member Yesterday’s Work Today’s Work Issue R X Task201:Active Agenda Page的重写,界面设置 Task201:Active Agenda Page 界面的美化,收缩折叠,并添加一些动画效果 Task 243:…

ARM学习笔记7——乘法指令

ARM乘法指令完成两个数据的乘法,两个32位二进制数相乘的结果是64位的4积。 其中: 1、“RadHi:RdLo”是由RdHi(最高有效32位)和RdLo(最低有效32位)链接形成的64位数,“[31:0]”只选取结果的最低有效32位 2、简单的赋值由“:”表示…

固态硬盘Ghost安装Windows 10无法引导的问题

机器配置如下: 电脑型号 技嘉 B360M POWER 台式电脑操作系统 Windows 10 64位 ( DirectX 12 )处理器 英特尔 Core i7-8700 3.20GHz 六核主板 技嘉 B360M POWER ( 英特尔 PCI 标准主机 CPU 桥 - CannonLake - A3…

[转]矩阵分解在推荐系统中的应用

矩阵分解是最近几年比较火的算法,经过kddcup和netflix比赛的多人多次检验,矩阵分解可以带来更好的结果,而且可以充分地考虑各种因素的影响,有非常好的扩展性,因为要考虑多种因素的综合作用,往往需要构造cos…

iPhone 系统刷机

1. 下载好固件(爱思 或者 pp助手) e.g. http://jailbreak.25pp.com/gujian/ 2. 将电脑与手机连接上,弹出iTunes软件即可 3. 长按手机电源键 关闭手机 4. 按住电源健,出现屏幕亮出现苹果标志后再按住Home健 5. 屏幕黑屏时松开电源健,继续按照H…

Java内存模型深度解析:总结

处理器内存模型 顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和JMM,那么…

sourcetree,创建工作流报错:Fatal: Not a gitflow-enabled repo yet. Please run 'git flow init' first.-》解决办法...

1、打开项目下.git/config文件,或者如下图操作: 2、打开config文件以后,删除所有 [gitflow *条目并保存文件 3、关闭并重新打开sourcetree 4、仓库-》Git 工作流-》初始化仓库即可转载于:https://www.cnblogs.com/yxfeng/p/10536955.html

关于a标签的href属性的注意事项

今天在做一个lightbox效果的时候出现了一个问题。 当往下滚动再点击按钮出现lightbox的时候,lightbox的遮罩层不能铺满(即滚动高度处不能铺上),如下图所示。原因是提交按钮使用的是a标签,当给a标签写上href属性的时候&…

在mac上安装gitlab

参考链接: https://www.cnblogs.com/floodwater/p/10138265.html 注意事项: 在安装gitlab-ce时,配置hostname域名后,通过域名访问gitlab时,需要配置本机hosts文件,不然不能访问 本地hosts文件中配置后 就可…

d3.js 入门指南

说到数据可视化,我们会行到很多优秀的框架,像echarts、highcharts,这些框架很优雅,健壮,能满足我们对可视化的大部分需求,但是缺点也很明显,就是这些框架几乎是不可定制化的,当遇到特…

Kubernetes系列之Helm介绍篇

本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复【K8s实战】获取 介绍 Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来管理 Charts。有点类似于 Ubuntu 中的 APT 或 CentOS 中的 YUM。Helm…

HTNL笔记整合

简述概括了HTML 的部分内容,不是很完善,希望能给予你们相对的帮助。 一下文件的整合百度云链接:HTML整合笔记 第一章 HTML入门 课时1:HTML初识 1、英文名(Hyper Text Markup Language)超文本标签语言 对…

EXCEL 图表 只在拐点的时候显示数字

EXCEL图表只在折线的拐点显示数值,中间不需要显示。同时往下拐的,显示在上方,往上的显示在下方,这样数值不会挡住线。 首先,做一些模拟数据 因为起点和终点数值必须显示,所以单元格,C2 D2 C19 D…

SQL语法(1、安装操作)

1、数据库的系统概述及安装与基本使用 bilibili可查找安装视频百度了解一下 – 使用超级管理员登录 CONN sys/change_on_install AS SYSDBA ; – 创建c##scott用户 CREATE USER c##scott IDENTIFIED BY tiger ; – 为用户授权 GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE…