Tomcat

vue.js笔记二

我的梦境 提交于 2020-08-17 13:06:02
vue双向绑定 简单理解 <!-- 模板 --> <div id ="test" > <input type ="text" v-model =" msg " ><br> <!-- 指令 --> <input type ="text" v-model =" msg " > <!-- 指令 --> <p> hello {{ msg }} </p> <!-- 大括号表达式 --> </div> <script type ="text/javascript" > const vm = new Vue({ // 配置对象 options // 配置选项 (option) el : '#test' , // element: 指定用 vue 来管理页面中的哪个标签区域 data : { msg : 'tomcat' } }) </script> 当在input输入框实时输入数据时,页面显示的数据也随着改变,这是View--->Dom Listeners --->Model的一个过程 从View到Model的这么一个过程,其实就是以前用Jquery时,给输入框架加上监听事件,Jquery获取监听事件进行一系列操作,把数据返回到后台。而现在VUE把这个监听给直接做好了,不需要我们手动的去绑定。 当后台数据显示到前台页面时,这是Model-->DataBinding-->View的过程,

max-http-header-size引起的oom

ε祈祈猫儿з 提交于 2020-08-17 11:07:38
记一次线上OOM事故 根据用户反馈,某服务不能提供服务,然后我们进行排查,进程id还在,但日志不输出。通过jstat -gcutil 查看内存使用情况;发现出现Full GC了。 查看内存使用情况 ps -ef | grep --color=auto 项目名 | grep --color=auto -v "grep" | awk '{print $2}' | xargs -i jstat -gcutil {} 2000 S0:幸存1区当前使用比例 S1:幸存2区当前使用比例 E:伊甸园区使用比例 O:老年代使用比例 M:元数据区使用比例 CCS:压缩使用比例 YGC:年轻代垃圾回收次数 FGC:老年代垃圾回收次数 FGCT:老年代垃圾回收消耗时间 GCT:垃圾回收消耗总时间 当年轻代内存满时,会引发一次普通GC,该GC仅回收年轻代。需要强调的时,年轻代满是指Eden代满,Survivor满不会引发GC 当年老代满时会引发Full GC,Full GC将会同时回收年轻代、年老代 生成堆的dump文件 jmap -dump:format=b,file=812.hprof 15968 打包文件 tar -czf 814.tar.gz 814.hprof MAT分析内存 一看就有问题了。 查看Histogram 进行引用查看 通过mat分析查看这个对象内存占用很大有10M左右

高级测试必备技能,Jenkins

人盡茶涼 提交于 2020-08-17 09:58:52
Jenkins安装 前言   Jenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的“自动化”编译、打包、分发部署,将以前编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址,将代码拉取到jenkins宿主机上,进行编译、打包和发布到web容器中。Jenkins可以支持多种语言(比如:java、c#、php等等),也兼容ant、maven、gradle等多种第三方构建工具,同时跟git、svn无缝集成,也支持直接与github直接集成。 1. 准备工作 以下是Jenkins官方对安装服务器、软件的建议要求。 机器要求: 256 MB 内存,建议大于 512 MB 10 GB 的硬盘空间(用于 Jenkins 和 Docker 镜像) 需要安装以下软件: Java 8 ( JRE 或者 JDK 都可以) Docker 我这里将准备的是在CentOS 7.5环境上,采用非docker方式进行安装。 2. 安装JDK1.8 如果已经安装,请忽略该步骤。 执行命令 yum install -y java-1.8.0 进行安装: [root@xcbeyond ~]# yum install -y java-1.8.0 3. 安装Jenkins 1)执行 wget -O /etc/yum.repos.d/jenkins.repo

从连接器组件看Tomcat的线程模型——NIO模式

左心房为你撑大大i 提交于 2020-08-17 09:56:22
Tomcat8之后,针对Http协议默认使用org.apache.coyote.http11.Http11NioProtocol,也就是NIO模式。通过之前的博客分析,我们知道Connector组件在初始化和start的时候会触发它子组件(Http11NioProtocol、NIOEndpoint的初始化和start)。 NIO模式工作时序图 还是像之前那样,我们先整理出NIO模式启动时的时序图。 从上面的时序图可以看出,整个流程的重点时在NioEndpoint这个类中。下面我们通过源代码看下这几个重点方法。 //NIO模式绑定端口 public void bind() throws Exception { //初始化套接字服务,需要注意的是在NIO模式下,这个ServerSocketChannel还是阻塞模式的 initServerSocket(); //设置默认的acceptor线程数,默认是1个,这个参数暂时好像没法修改(??) //注意这个参数和acceptCount(接收请求连接的数量)之间的区别 if (acceptorThreadCount == 0) { acceptorThreadCount = 1; } //设置pollerThreadCount,根据CPU的核数来,CPU大于2个设置为2,否则为1 if (pollerThreadCount <= 0)

你真的了解负载均衡中间件nginx吗?

一世执手 提交于 2020-08-17 08:37:50
前言 nginx可所谓是如今最好用的软件级别的负载均衡了。通过nginx的高性能,并发能力强,占用内存下的特点,可以搭建高性能的代理服务。同时nginx还能作为web服务器,反向代理,动静分离服务器。十分的方便好用,今天让我来一起看看,你真的了解nginx吗? Nginx 简介 Nginx 概述 Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 Nginx 作为 web 服务器 Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 perl、php 等。但是不支持 java。Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发, 性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。 https://lnmp.org/nginx.html 正向代理 Nginx 不仅可以做反向代理,实现负载均衡。还能用作正向代理来进行上网等功能。 正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet

如何优雅地停止 Spring Boot 应用?

这一生的挚爱 提交于 2020-08-17 08:04:51
武培轩 推荐搜索 Spring BootJava数据结构MySQLNginxElasticsearch 首先来介绍下什么是优雅地停止,简而言之,就是对应用进程发送停止指令之后,能保证正在执行的业务操作不受影响,可以继续完成已有请求的处理,但是停止接受新请求。 在 Spring Boot 2.3 中增加了新特性优雅停止,目前 Spring Boot 内置的四个嵌入式 Web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及反应式和基于 Servlet 的 Web 应用程序都支持优雅停止。 下面,我们先用新版本尝试下: Spring Boot 2.3 优雅停止 首先创建一个 Spring Boot 的 Web 项目,版本选择 2.3.0.RELEASE,Spring Boot 2.3.0.RELEASE 版本内置的 Tomcat 为 9.0.35。 然后需要在 application.yml 中添加一些配置来启用优雅停止的功能: # 开启优雅停止 Web 容器,默认为 IMMEDIATE:立即停止 server: shutdown: graceful # 最大等待时间 spring: lifecycle: timeout-per-shutdown-phase: 30s 其中,平滑关闭内置的 Web 容器(以 Tomcat 为例)的入口代码在

Bulehero 蠕虫病毒安全分析报告

十年热恋 提交于 2020-08-17 08:00:31
作者:answerboy @知道创宇404积极防御实验室 时间:2020年8月5日 1 概述 近日知道创宇404积极防御团队通过知道创宇云防御安全大数据平台(GAC)监测到大量利用Struts2、ThinkPHP等多个Web组件漏洞进行的组合攻击,并捕获到相关样本,经分析确认该样本为Bulehero蠕虫病毒。目前该Web攻击均被创宇盾拦截;知道创宇NDR流量监测系统也已经支持检测所有相关恶意IOC及流量。 2 追溯分析 2.1 发现攻击 2020年7月26日,通过日志分析发现IP: 47.92.*.* (北京)、 119.23.*.* (广东)、 117.89.*.* (南京)等多个IP对客户网站发起Web漏洞攻击,通过远程下载并执行恶意文件Download.exe,如下: ThinkphpV5进行攻击: Tomcat PUT方式任意文件文件上传: Struts2远程命令执行: 经过分析,发现Download.exe为下载器,执行流程如下: 图1-执行流程 2.2 详细分析 2.2.1 Download.exe Download.exe作为下载器,攻击成功之后会继续前往 http://UeR.ReiyKiQ.ir/AdPopBlocker.exe 下载AdPopBlocker.exe到系统TEMP目录并创建名为Uvwxya和fmrgsebls的计划任务来实现自启动,如下: 图2

【Nginx】如何获取客户端真实IP、域名、协议、端口?看这一篇就够了!

会有一股神秘感。 提交于 2020-08-17 07:42:36
写在前面 Nginx最为最受欢迎的反向代理和负载均衡服务器,被广泛的应用于互联网项目中。这不仅仅是因为Nginx本身比较轻量,更多的是得益于Nginx的高性能特性,以及支持插件化开发,为此,很多开发者或者公司基于Nginx开发出了众多的高性能插件。使用者可以根据自身的需求来为Nginx指定某款插件以增强Nginx在某种特定场景下的功能或者提升Nginx在某种特定场景下的性能。 Nginx获取客户端信息 注意:本文中的客户端信息指的是:客户端真实IP、域名、协议、端口。 Nginx反向代理后,Servlet应用通过 request.getRemoteAddr() 取到的IP是Nginx的IP地址,并非客户端真实IP,通过 request.getRequestURL() 获取的域名、协议、端口都是Nginx访问Web应用时的域名、协议、端口,而非客户端浏览器地址栏上的真实域名、协议、端口。 直接获取信息存在哪些问题? 例如在某一台IP为192.168.1.100的服务器上,Jetty或者Tomcat端口号为8080,Nginx端口号80,Nginx反向代理8080端口: server { listen 80; location / { proxy_pass http://127.0.0.1:8080; # 反向代理应用服务器HTTP地址 } } 在另一台机器上用浏览器打开http:/

Spring Boot 项目瘦身指南,瘦到不可思议!

谁说胖子不能爱 提交于 2020-08-17 05:10:38
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 一、前言 SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了。 这个时候如果想要对线上运行工程有一些微调,则非常痛苦 二、瘦身前的Jar包 Tomcat在部署Web工程的时候,可以进行增量更新,SpringBoot也是可以的~ SpringBoot编译出来的Jar包中,磁盘占用大的,是一些外部依赖库(jar包), 例如: 进入项目工程根目录,执行 mvn clean install 命令,得到的Jar包,用压缩软件打开,目录结构如下: 整个Jar包 18.18 MB, 但是 BOOT-INF/lib 就占用了将近 18 MB: 三、解决方法 步骤1: 正常编译JAR包,解压出lib文件夹 POM文件如下: 进入项目根目录,执行命令:mvn clean install 将编译后的Jar包解压,拷贝 BOOT-INF 目录下的lib文件夹 到目标路径; 步骤2: 修改pom.xml配置,编译出不带 lib 文件夹的Jar包 配置完成后,再次执行编译:mvn clean install 生成的 Jar