nginx加tomcat动静分离,负载均衡

news2024/12/24 21:30:13

tomcat是什么:java开发的开源服务器

处理动态页面,静态页面处理能力一般

 jvm参数优化

配置添加 在119行之前

以2cpu 4G内存为例

JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -Xmn768m -XX:ParallelGCThreads=2 -XX:PermSize=1024m -XX:MaxPermSize=1024m -Djava.awt.headless=true -XX:+DisableExplicitGC"

cygwin=false之前

-server 一定要作为第一个参数,再多个cpu时使用

-Xmx 堆内存的最大大小

-Xms 内存初始大小

-Xmx  -Xms最好相等且等于内存的一半,避免回校后机制后重新整理堆

-Xmn新创建的对象给的内存空间

-xx:premSizea:非堆内存初始值

 -xx:maxPermSize:非堆的最大   

伸缩堆带来的大小

-xx:parallelGCThreads:设置并行垃圾收集器的线程数最好等于cpu数

-xx:premSizea -xx:maxPermSize:最好设置相且等于物理内存的四分之一

-Djava.awt.headless=true 避免再linux/unix环境下web网页不能正常显示图片

-XX:+DisableExplicitGC 关闭系统级别的垃圾回收机制,以防大起打落导致响应变慢

两个tomcat实例

Nginx+Tomcat负载均衡,动j静分离群集

 

 nginx负载均衡是通过反向代理实现的

 upstream

proxy_pass转发http://服务名称

 location匹配请求通过 http反向代理转发给后台

 nginx配置

 #定义tomcat服务器组集群

 weight权重,默认为1proxy_pass http://

 优化,图片内容保存

负载均衡模式:

rr模式轮询

每个请求按时间顺序逐一分配到不同的后端服务器,超过最大失败次数后(max_files默认为1)后端服务器死机,自动剔除故障,时访问不受影响

least_conn最少连接

优先将客户机请求调度到当前连接最少的服务器

ip_hash

每个球球按IP的hash结果分配会话断开保持

每个顾客固定一个服务器session共享问题可用后端的session共享同步

fair 第三方负载

按照后端服务器的响应时间进行分配,响应时间段的优先分配

url_hash(第三方)

根据用户请求的u人来做hash,对每个url的hash结果分配

 反向代理两种模式

 七层转发

http{

stream{

upstream 服务器组名称{

       server IP1:PORT 【weight=1 ...】 ;

       server ip2:  PORT;

       . . . . .

       调度算法(rr轮询/加权轮询/least_conn最小链接,ip_hash,url_hash,fair/)

server {

   location ~ . . . {

      proxy_pass http://tomcat_server;

      proxy set header HosT $host;

      proxy set header X-Real-Ip $remote addr;

      proxy set header X-Forwarded-For $proxy_add_x_forwarded_for;

 }

}

}

四层反向代理:配置--with-stream 模块

http模块添加同一级的stream块(一般配置在http块上面)

proxy_pass

 关闭长连接keeptimeout=0四层代理

tomcat的长连接

四层反向代理

 stream {

  upstream 服务器组名称 {

       server ip1:PORT ;

       server ip2:  PORT;

       server ip3:PORT;

         . . . . .

   }

}

server {

   listen 监听端口;

   server_name 网站主机名;

   proxy_ pass 服务器组名称

}

}

总结nginx支持哪些类型的反向代理

基于七层的http/https/mail等应用协议的代理

基于四层的ip+tcp或udp端口的代理

例题

三台nginx需要重新编译,添加 --with-stream  编译安装

到源安装的nginx目录下

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-stream

make

然后把 新的objs目录下的nginx复制usr/local/nginx/sbin/下的ningx

nginx -V查看是否加载模块成功

四层反向代理的nginx配置

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  0;
   # keepalive_timeout  65;

    #gzip  on;
upstream tomcat_server {
   server 192.168.232.33:8080;
   server 192.168.232.105:8080;
}
 

server

{

listen 81;

server_name localhost;

#charset koi8-r;

如果使用80端口,需要将下面localhost端口改为80之外的端口,这里设为81.

七层反向代理的配置

upstream tomcat_server {
   server 192.168.232.33:8080;
   server 192.168.232.105:8080;
}

在tomcat中创建动态网页 :

cd /usr/local/tomcat/webapps/
 
vim index.jsp
 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

在nginx中创建静态网页:

cd /usr/share/nginx/html
vim index.html
 
<html>
<body>
<h1>this is nginx1 test web!</h1>
</body>
</html>

动态页面一定要在webapps下建立test要不会跳到tomcat默认页面

测试

 

 

 

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

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

相关文章

IS230TCISH6C集成电路分类有哪些呢

​ IS230TCISH6C集成电路分类有哪些呢 集成电路分类有哪些 集成电路是一种微型电子器件或部件&#xff0c;集成电路有很多种&#xff0c;那么集成电路分类有哪些呢&#xff0c;下面小编就为大家介绍集成电路的分类。 按功能结构区分 模拟集成电路 数字集成电路 数/模混合集成电…

JavaSE学习进阶day06_04 集合的嵌套和不可变集合

接昨天讲的内容&#xff0c;今天还要继续学习集合。学完今天的内容&#xff0c;集合就告于段落了&#xff0c;坚持&#xff01; 集合的嵌套&#xff08;掌握&#xff01;&#xff09;&#xff1a; 什么是集合的嵌套&#xff1f;为什么要集合的嵌套&#xff1f;为了搞清楚这个…

算法篇——层序遍历大集合(js版)

102.二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 链接&#xff1a;力扣 var levelOrder function(root) {var res [], queue [];if(!root) return res;// 队列…

海斯坦普Gestamp EDI 需求分析

海斯坦普Gestamp&#xff08;以下简称&#xff1a;Gestamp&#xff09;是一家总部位于西班牙的全球性汽车零部件制造商&#xff0c;目前在全球23个国家拥有超过100家工厂。Gestamp的业务涵盖了车身、底盘和机电系统等多个领域&#xff0c;其产品范围包括钣金、车身结构件、车轮…

非极大值抑制详细原理(NMS含代码及详细注释)

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,YOLO,活动领域博主爱笑的男孩。擅长深度学习,YOLO,活动,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typecollect 个…

配置vscode arcpy环境 基于ArcGIS的python

最近可能要用到arcpy&#xff0c;我以前这是知道有这个东西&#xff0c;但是没用过&#xff0c;今天正好记录下利用vsCode编译器&#xff0c;python开发来配置arcpy环境。 1.安装ArcGIS desktop 2.下载安装vscode 上面的两步没啥可说的&#xff0c;很简单&#xff0c;我要说…

ArcGIS、ENVI、InVEST、FRAGSTATS多技术融合提升环境、生态、水文、土地、土壤、农业、大气领域应用

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平 点击查看原文 一、空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 …

性能优化之-更高效的数据渲染

前言&#xff1a;中心思想还是让请求的资源得到更快响应的方法&#xff0c;比如压缩资源&#xff0c;减少数据量的大小&#xff0c;缓存数据以减少请求数量&#xff0c;http/2让网络传输变得更快这些&#xff0c;下面就让我们来看看浏览器是如何解析这些数据&#xff0c;最终又…

数据结构——红黑树

红黑树 概念与性质树节点的定义插入红黑树的验证红黑树与AVL树的对比 概念与性质 概念&#xff1a; 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色…

数字IC设计——功耗分析

一、概述 芯片的整体功耗很难通过简单的电流&#xff0c;电压或者电阻值的的相乘来计算。其原因在于&#xff0c;由于芯片作为具有复杂功能的器件&#xff0c;其功耗会根据其不同时段的不同行为&#xff0c;不同的外部条件而发生很大的变化。 1.1 功耗的分类 数字IC芯片的功…

Three.js+TypeScript+Webpack学习记录(二)

使用环境参考 Node.js v16.19.1 正文 跟着文档画个线 看看 Three 的官方文档&#xff0c;起步 -> 画线 -> 没了&#xff1f;&#xff01;&#xff01; 不管怎么说&#xff0c;先画个线吧。 import * as THREE from threeconst scene new THREE.Scene() const camer…

HummerRisk V1.0 开发手册(微服务版)

HummerRisk 是开源的云原生安全平台&#xff0c;以非侵入的方式解决云原生环境的安全和治理问题。核心能力包括混合云的安全治理和容器云安全检测。 本文将介绍HummerRisk 1.0以后的开发准备工作。 v1.0.0 以后的版本&#xff0c;代码在 dev 分支。欢迎大家在 dev 开发分支提…

多通道振弦传感器无线采集仪 数字传感器起始通道分配

多通道振弦传感器无线采集仪 数字传感器起始通道分配 寄存器 DS_CHNUM(299)用于设置读取到的数字传感器数据从哪个通道开始占用&#xff0c;默认为 1。 单个数字传感器占用的通道数量与具体的传感器类型有关&#xff0c;例如&#xff1a;每个激光测距仪会占用 1 个通道&#xf…

Linux Shell 实现一键部署二进制go+caddy+filebrowser

filebrowser filebrowser 是一个使用go语言编写的软件&#xff0c;功能是可以通过浏览器对服务器上的文件进行管理。可以是修改文件&#xff0c;或者是添加删除文件&#xff0c;甚至可以分享文件&#xff0c;是一个很棒的文件管理器&#xff0c;你甚至可以当成一个网盘来使用。…

HCIE Datacom认证学什么内容

什么HCIE 什么是HCIE&#xff1f;HCIE的全称是Huawei Certified ICT Expert&#xff08;华为认证ICT技术专家&#xff09;。 华为认证是行业中最严谨的认证&#xff0c;含金量与行业认可度都较高。在众多的IT行业认证中&#xff0c;HCIE被誉为“网络界的博士”。 华为认证HCI…

深度学习 - 41.Word2vec、EGES 负采样实现 By Keras

目录 一.引言 二.实现思路 1.样本构建 2.Word2vec 架构 3.EGES 架构 4.基于 NEG 的 Word2vec 架构 三.Keras 实现 Word2vec 1.样本构建 2.模型构建 3.向量获取 四.keras 实现 EGES 1.样本构建 2.模型构建 3.Dot Layer 详解 3.1 init 方法 3.2 call 方法 3.3 完…

4月18号软件更新资讯合集

ModStartCMS v6.2.0&#xff0c;VIP 权益配置功能、界面 UI 优化升级 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.…

4月19号软件更新资讯合集....

JavaWeb 微服务前后端分离 EurekaEleVue 版 v1.5.0 发布 v1.5.0 更新如下&#xff1a; 1、解决 token 过期无法跳转至登录页的问题&#xff1b; 2、授权服务进行重构与优化&#xff1b; 一款 Java 语言基于 SpringCloud、SpringSecurity、OAuth2、Eureka、Vue、ElementUI、…

Docker实战笔记1-基础

转载请标明出处&#xff1a;http://blog.csdn.net/zhaoyanjun6/article/details/130181636 本文出自【赵彦军的博客】 文章目录 官网下载安装安装Docker 镜像镜像分层存储 容器常用命令docker infodocker imagesdocker versiondocker ps &#xff1a;查看容器docker ps -a查看容…

如何检查设置的IP是否有效?Storm proxies动态代理IP好用吗?

检查设置的IP是否有效可以通过以下几种方式&#xff1a; 发起网络请求&#xff1a;可以使用HTTP客户端库&#xff08;例如Python的Requests库&#xff09;或者命令行工具&#xff08;例如curl&#xff09;来发起网络请求&#xff0c;使用设置的IP作为代理IP&#xff0c;然后查看…