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,一经查实,立即删除!

相关文章

C#循环给多个控件赋值

需要给 多个 文本框重新赋值 1 textBox1.Text"ss"; 2 3 textBox2.Text"ss"; 4 5 textBox999.Text"ss"; 6 7 textBox99999.Text"ss"; 这样太麻烦,控件过多不方便写 通过遍历 一次性赋值,再多也不怕了 将所有T…

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

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

关于REST API设计的一些小经验

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://phoenixtoday.blogbus.com/logs/45855234.html 最近小组里有一些关于REST API设计的讨论,有些收获,打算在这里写一下。通常来讲设计第一个版本的REST API并不难&…

1037 在霍格沃茨找零钱

题目传送门&#xff1a;https://pintia.cn/problem-sets/994805260223102976/problems/994805284923359232 题解&#xff1a; #include<iostream> using namespace std;int main() {int Galleon1, Sickle1, Knut1, Galleon2, Sickle2, Knut2;char c;cin >> Galleon…

我对创业和管理的一些看法

创业&#xff0c;对于刚工作的人&#xff0c;会比较兴奋&#xff0c;因为创业充满想象力&#xff1b;对于工作几年的人&#xff0c;会比较向往&#xff0c;因为压抑得太久。其实&#xff0c;创业和就业一样&#xff0c;只是实现自己人生价值的两种方式&#xff0c;关键是心态问…

关于Anaconda的环境和包管理

Anaconda相对于原生python解释器具有更好的包管理功能&#xff0c;它有一个env文件夹&#xff0c;里面包含所要管理的所有环境&#xff1b;日常操作时我们可能会使用pytorch、Tensorflow等多个环境&#xff0c;由于每个环境对Python的包的兼容性都不一样&#xff0c;所以我们可…

WCF basicHttpBinding之Message Security Mode

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

战略游戏

题目描述 Bob喜欢玩电脑游戏&#xff0c;特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。 他要建立一个古城堡&#xff0c;城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵&#xff0c;使得这些士兵能了望到所有的路。 注意&#xff0…

Vue语法学习第三课——计算属性

模板内的表达式非常便利&#xff0c;但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。对于任何复杂逻辑&#xff0c;都应当使用计算属性。 <div id"example"><p>original message : "{{message}}"</p&…

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

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

neo4j删除所有节点

MATCH (n)OPTIONAL MATCH (n)-[r]-()DELETE n,r转载于:https://www.cnblogs.com/luoganttcc/p/10525189.html

Hadoop RPC实例

本文发表于本人博客。 上次写了个hadoop伪分布环境搭建的笔记了&#xff0c;今天来说下hadoop分布式构建的基础RPC&#xff0c;这个RPC在提交Job任务的时候底层就是创建了RPC来实现远程过程调用服务端。 我们首先可以通过Job的waitForCompletion(boolean verbose)方法来跟踪代码…

Django 模板语言 标签

前言&#xff1a;django的模板语法基本和flask的jinja2基本一样。下面比较一下两个模板语法的区别。 &#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;&#xff0d;深度变量的查找&#xff08;万能的句点号&#xff09; 在 Django 模板中遍历复杂数据结构的关键是…

电子书下载:Illustrated C# 2012 4th

下载&#xff1a;http://www.ctdisk.com/file/9015906转载于:https://www.cnblogs.com/MaxWoods/archive/2012/08/26/2657752.html

关于83版射雕英雄传

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

ZOJ 3735 Josephina and RPG

思路&#xff1a;dp[i][j]:第i轮打完后&#xff0c;决定以j阵容打下一轮 保持原有阵容&#xff1a;dp[ i ][ j ] dp[ i - 1 ][ j ] * p [ j ][ s [ i ] ] 换成第i轮怪的阵容: for(int k0;k<r;k)dp[i][j]max(dp[i][j],dp[i-1][k]*p[k][s[i]]) 优化&#xff1a;用滚动数组&am…

4~20mA电流输出芯片XTR111完整电路(转)

源&#xff1a; 4~20mA电流输出芯片XTR111完整电路转载于:https://www.cnblogs.com/LittleTiger/p/10511115.html

电子书下载: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的赋值、浅克隆和深度克隆的区别

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

一个医院院长电视机坏了,拿到一个大修理店去修

一个医院院长电视机坏了&#xff0c;拿到一个大修理店去修。修理店接待人员:“OK&#xff0c;开机费50元”医院院长: “为什么还没修理就要先交费”&#xff1f;修理店接待人员: “我们修理店的制度就是这样&#xff0c;你们医院的挂号费&#xff0c;不是没看病之前就要交吗”&…