-
java自带的tomcat在哪_如何优雅的使用springboot项目内置tomcat
2021-03-14 02:03:58问题:以前,我们在使用SSM框架的时候,都是通过外置的tomcat进行部署,如果想访问文件,直接拖到项目的根目录下面即可。假如我们需要放一个apk文件,然后让别人下载,只需将apk放到项目根目录下面,浏览器通过...问题:以前,我们在使用SSM框架的时候,都是通过外置的tomcat进行部署,如果想访问文件,直接拖到项目的根目录下面即可。假如我们需要放一个apk文件,然后让别人下载,只需将apk放到项目根目录下面,浏览器通过http://ip:port/projectName/xx.apk即可下载。现在使用spring boot进行项目开发,由于springboot 内嵌了tomcat,为了方便部署,因此我们大多数情况下只需将项目打成jar包运行。这样就存在一个问题,我们该如何将这个apk放到服务器上,别人通过浏览器进行下载呢? 一、springboot的项目结构
|———main|———java———代码
|———src ||
|||
|||———resources———静态资源配置
project ||———test
|———pom.xml
二、打成jar包后的结构
|———META-INF
||——lib
project ||
|———BOOT-INF----|
|——classes——(项目结构java下面的class文件和resources下面的文件)
三、classpath指的是哪儿 classpath顾名思义,就是class的路径,打包前指的就是resources,打包后指的就是classes。 四、apk文件放在哪儿打包部署后可以正常访问 springboot配置文件为我们提供了默认的静态资源访问路径,当然我们也可以进行修改。默认的路径为下面这四个地址,当我们想访问静态资源的时候会从上往下一个地址接一个地址的去找:
{
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
};
如果想要自定义的话,则在application.properties中设置
spring.resources.static-locations=自定义路径
我们把apk放到以上任意一个文件夹中都可以正常访问到。我最常做的是在resources下面建一个resources的文件夹,然后用http://ip:port/projectName/xx.apk去访问。如下图所示
这样我们就能轻松实现浏览器访问jar中的静态资源了,而不用安装tomcat,用war包的形式去运行项目咯。
-
配置 Tomcat有哪两种方式?
2018-02-24 22:34:26(1)一种是IDE 直接添加本地的 Tomcat(2)另一种是用maven,在 pom 文件中配置,用命令进行启动.下面我们就关于这两种配置 Tomcat 继续详细的配置. 二,【详情】 1,直接添加本地 Tomcat(最常用,也是最简单的): (1) ...配置 Tomcat有哪两种方式?
一,【前言】
配置 Tomcat 一般有两种方式,常用的是哪两种呢?
(1)一种是IDE 直接添加本地的 Tomcat
(2)另一种是用maven,在 pom 文件中配置,用命令进行启动.
下面我们就关于这两种配置 Tomcat 继续详细的配置.
二,【详情】
1,直接添加本地 Tomcat(最常用,也是最简单的):
(1) 首先去 Tomcat 官网,下载好 Tomcat,地址: https://tomcat.apache.org/
选择你需要的版本,下载到本地.
例如我最近用的 Tomcat8:
(2) 在 IDE 中进行添加, 我这里是 idea 配置:
Tomcat 的本地添加:
最后点击 apply, Ok 就行了.
2,maven中在 pom 中配置,用命令启动:
(1) 在业务包中的 pom 中添加 Tomcat配置:
<!--添加tomcat插件 --> <build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <port>8086</port> <path>/</path> </configuration> </plugin> </plugins> </build>
(2)maven 的配置
最后确定,点击 ok 就成功了!
三,【小结】
著名教授米新江老师说道:”不怕”两种方式都非常的方便,就看你希望那种方式.
1,有一个亲身体验特点, 方法一添加本地 Tomcat, 启动之后可以自动跳到浏览器; 而 maven 的 pom文件配置 Tomcat 需要自己在浏览器中输入网址和端口进行访问.
2,个人常用是方法一添加本地的Tomcat, 这个还是比较的快捷的.
-
tomcat日志文件在哪_tomcat容器时间同步
2020-12-04 06:53:24用docker部署容器服务时,很自然地涉及到容器内外时间同步问题,通常最简单的解决方式...#开始之前我们先下载最新的tomcat镜像docker pull tomcat:latest#下载好镜像之后,用docker命令创建一个容器docker run -p...用docker部署容器服务时,很自然地涉及到容器内外时间同步问题,通常最简单的解决方式就是将宿主机的时间信息文件挂载到容器内相应位置。但是,当你部署tomcat容器时,用同样的操作不能彻底解决此类问题,这是为什么呢?让我们来一探究竟。
#开始之前我们先下载最新的tomcat镜像
docker pull tomcat:latest
#下载好镜像之后,用docker命令创建一个容器
docker run -p 8087:8080 -d tomcat:latest
-p参数将容器中tomcat的8080端口链接到外部的8087端口
#进入tomcat容器(其中e11a615959ef为对应的容器id)
docker exec -ti e11a615959ef /bin/bash
在容器中查看tomcat的时间信息如下:
未进行时间同步之前,容器内的时间默认为UTC标准时间,滞后我大中华时间8个小时。
#关闭刚刚创建的容器,将宿主机时间信息挂载到容器内
docker stop e11a615959ef
docker run -p 8087:8080 -v /etc/localtime:/etc/localtime:ro -d tomcat:latest
再次进入容器,查看时间信息如下:
这一次,时间信息完美与宿主机同步,打开浏览器也能正常出现如下tomcat页面,可正常提供服务。
但是当我们在容器中查看tomcat的日志信息时,发现时间信息还是有点问题。
时间信息依旧滞后8小时,这是为什么呢?
查阅资料后发现,tomcat和openjdk提供日志或web服务时用的不是/etc/localtime.ro中的时间信息,用的是/etc/timezone中的信息。查看容器中的/etc/timezone信息果然还是UTC。
找到了问题的症结,我们对症下药,在宿主机创建一个timezone文件来覆盖容器内的对应文件,宿主机创建timezone文件,内容为'Asia/Shanghai'。
方法一:
#挂载timezone文件,重新启动docker容器
docker run -p 8087:8080 -v /mnt/web/war/timezone:/etc/timezone -v /etc/localtime:/etc/localtime:ro -d tomcat:latest
#再次进入容器,查看log日志的时间信息,log日志的时间信息也与宿主机同
当然日志时间不同步问题还有其他解决办法。
方法二:
在Dockfile构建tomcat容器时,在tomcat/bin/catalina.sh文件中修改tomcat JAVA_OPTS,添加如下内容
JAVA_OPTS="$JAVA_OPTS -Duser.timezone=GMT+08"
本篇内容在本人个人公众号上也已发布,欢迎关注本人微信公众号“勤菜鸟”。
Ref:
https://blog.lqdev.cn/2018/07/15/docker/docker-time-diff/
-
(静态资源处理)nginx 比tomcat强在哪
2019-06-26 10:27:57nginx有多牛逼 序言 安装 反向代理 静态资源服务器 nginx vs tomcat压测对比 并发结果对比 对服务器影响对比 说在后面的话 序言 对于常用的服务器,大家可能更多的知道apache,tomcat,lls等服务器。我们跟多的...序言
对于常用的服务器,大家可能更多的知道apache,tomcat,lls等服务器。我们跟多的了解到nginx常常用于反向代理。而实质是nginx也是一个高性能服务器。常用于前端页面资源静态化和负载均衡的反向代理。
下面就由博主带你认识nginx。以及nginx的反向代理、资源静态化,和压测对比。
安装
笔者环境是ubuntu18.04.所以下载东西是非常简单。centos 的yum源也有nginx。对于window。直接下载使用即可。
- nginx 下载:
sudo apt get nginx
- jmeter 下载 官网自行安装 解压完(
sudo chomd -R 777 apache-jmeter-5.1.1
)
这样,一些基本的工具就下载完成啦。直接nginx或者sudo nginx访问
localhost
就有hello nginx 就是安装成功,对于jmeter 如果安装可以到官网进行安装。对于nginx安装后的一些路径,都在
- 所有的配置文件都在/etc/nginx下
- 程序文件在/usr/sbin/nginx
- 日志放在了/var/log/nginx中
- 并已经在/etc/init.d/下创建了启动脚本nginx
还有nginx的一些常用关闭命令
- nginx -s reload :修改配置后重新加载生效
- nginx -s reopen :重新打开日志文件
- 关闭nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx - 其他的停止nginx 方式:
ps -ef | grep nginx
kill -9 xxx
如果权限不足记得加上
sudo
反向代理
对于nginx,很多人用nginx tomcat做负载均衡。提高系统并发量。
对于nginx的配置文件,在/etc/nginx/conf.d/
下新建proxy.conf
(也可以在nginx/nginx.conf中配置)
就比如我想用我本地8081端口代理到本地的nginx上upstream tomcat-server{ server 47.100.58.250:8080 ; } server{ listen 8081; server_name localhost; location / { proxy_pass http://tomcat-server; root html; index index.html; } }
对于nginx/nginx.conf我进行了修改去掉一些暂时用不到的。
user root; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { 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 /var/log/nginx/access.log main; client_max_body_size 20m; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; }
这样,你在本地就可以代理访问服务器地址http://localhost:8081/
当然,如果有多个server可以在upstream中进行配置,还可配置各个节点的权重等等。具体就不介绍了。
静态资源服务器
在前后端分离流行的当今。nginx被许多前端爱好者接受。通过nginx能够简单的将静态资源部署,从而达到动静分离的效果。
nginx配置静态资源服务器很简单
在上述同级文件conf.d/下新建static.confserver { listen 8082; server_name localhost; location / { root /home/tomcat9/webapps/ROOT/; autoindex on; } }
其中root为tomcat的绝对路径(可以随便配置),我事先对tomcat的首页的index.jsp跑起来存成index.html文件。
那么现在我们已经完成
两件事
:8081端口负载均衡(反向代理到我服务器)
,8082端口制成本地tomcat的静态文件服务器
。那么开启tomcat。左面是nginx做服务器返回静态
nginx vs tomcat压测对比
并发结果对比
- 我们先前下载的jmeter可以上场了。针对同一个静态页面。nginx路径为http://localhost:8082/,tomcat为http://localhost:8080/.
- 添加线程组。先测试15000个线程1s内同时请求主页。线程组中添加http请求。ip:localhost。port:8080
在添加->监听器添加自己喜欢数据格式(需要qps的可以找插件) - 对比
其中tomcat,最大qps2400左右
而nginx的结果明显要强,最大qps3000左右
对服务器影响对比
- 当20000个并发10s内请求时候。附上完成时的cpu状况 tomcat cpu达到21.6%。内存站到6.4%,也就是随着并发tomcat对服务器的cpu和内存造成不小压力
而nginx在压测过程中内存几乎没变化,几乎不吃内存。而cpu占用也比tomcat少。
总结:
指标 nginx tomcat 响应中位数 0ms 1ms 前95%响应时间 4 5 前99%响应时间 7 16 qps(观察) 3000 2400 对内存影响 0% 6.4% 对cpu影响 21.6% 14% 其他 轻便强大 java吃点内存、速度慢点 (测量环境相对统一)
说在后面的话
通过系列对比,发现nginx的强大之处。负载均衡和静态资源服务器能够为并发减轻压力。而nginx的学问依然很多。还需要细细研究才行。并且nginx的牛B之处远不止这些,还需要深入学习才行!
同时,替自己公众号打啵广告。希望一起交流哈
- 如果对
后端、爬虫、数据结构算法
等感性趣欢迎关注我的个人公众号交流:bigsai
- nginx 下载:
-
eclipse中有关tomcat的信息保存在哪?
2016-12-23 13:39:04我想自己封装一套开发环境,就是把eclipse、jdk、tomcat都放到一个目录文件夹,打开eclipse即可开发 我现在会配jdk的路径了 怎么配置tomcat呢? eclipse把tomcat的信息都保存在哪了? -
Tomcat的账号与密码在哪?
2017-10-27 11:13:38打开文件 apache-tomcat——>conf——>tomcat-users.xml,在该文件中可以更改和查看tomcat的账号与密码 -
eclipse tomcat发布路径在哪?
2019-05-21 17:56:00转载于:https://www.cnblogs.com/package-java/p/10901382.html -
springboot中tomcat的启动入口在哪?
2019-02-20 13:49:46在springboot中,是融合了tomcat的启动与加载的,那么关于tomcat的启动与加载的入口就是研究的第一步,在EmbeddedWebApplicationContext类中,重写了AbstractApplicationContext的finishRefresh()方法,如下: ... -
tomcat html修改后不生效_(静态资源处理)nginx比tomcat强在哪?
2020-12-05 20:15:58序言对于常用的服务器,大家可能更多的知道apache,tomcat(java应用服务器),lls等服务器。我们跟多的了解到nginx常常用于反向代理。而实质是nginx也是一个高性能web服务器。常用于前端页面资源静态化和负载均衡的... -
springboot内置tomcat的basedir存放位置在哪
2021-02-27 14:48:45windows 比如我这样写,且我当前项目是在e盘 那么就会在e盘下生成一个tmp/tubai/里面存放着tomcat的东西 linux 会在系统的tmp下放一个tubai -
idea2020内嵌的tomcat文件夹在哪_企业如何面对Tomcat的诸多安全漏洞?
2020-12-15 19:29:50↑ 点击上方“大魏分享”...红帽在发布产品之前,会进行大量的整合工作、修复bug,并提供企业级的技术支持。那么,如果有人跳出来说,我能把OpenShift这些相关的开源组件挨个都装上,并且拼起来,功能也不比OpenShif... -
tomcat mysql报错日志在哪_CentOS7下部署java+tomcat+mysql项目及遇到的坑
2021-02-11 12:42:12CentOS 7 下安装部署java+tomcat+mysql一.Java1.1先检查是否有自带jdkrpm -qa | grep -i java若有输出,则删除# rpm -e --nodeps 后面跟jdk的文件名1.2 java配置1、进入或新建到一个目录,用于存放下载的java包#cd ... -
为什么我启动哪一个tomcat都是启动同一个tomcat(tomcat7)
2019-11-12 17:01:12今天在朋友电脑上启动tomcat的时候出现这样一个问题,无论启动tomcat7、tomcat8还是tomcat9,在浏览器上输入http://localhost:8080/都会显示启动的是tomcat7 原因是环境变量配置的问题 打开电脑的环境变量的配置,... -
Tomcat
2020-02-22 21:07:35Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试Servlet/JSP 程序的首选。 2. 为什么需要Tomcat这... -
eclipse的执行tomcat的应用位置在哪?
2013-04-01 11:37:39使用tomcat运行web应用,操作run as -》 run on server 执行后应用的目录在哪个位置? 这是eclipse会修改tomcat的配置文件吗 -
Tomcat一直闪退 用命令行打开startup.bat 出现下面信息 哪位大神知道问题在哪
2021-02-20 15:10:14<p style="text-align:center"><img alt="" height="209" src="https://img-ask.csdnimg.cn/upload/1613804976871.PNG" width="1204" /></p> </p> -
在tomcat下 有哪几种发布jsp应用程序的方法?
2010-06-02 09:19:23Tomcat的webapps目录是tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。也可以将jsp应用程序打成一个war包放在这个目录下,服务器会自动解开这个war包,并在这个目录下生产一个同名文件夹。一个... -
tomcat在debug启动时报错,请哪位大侠为小弟查看一下
2008-08-21 14:04:31... 2008-8-21 12:09:27 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 1047 ms 2008-8-21 12:09:27 org.apache.catalina.core....报错如上,在debug启动时报的错,谢谢 -
在myeclipise上部署tomcat
2016-07-14 11:29:50部署后启动tomcat在浏览器输入http//localhost:8080不能出现tomcat猫,说是找不到页面!但是在tomcat上加上项目后,在浏览页8080后加上项目路径,就能正常运行!是怎么回事啊?哪位好心大神解决一下? -
linux部署tomcat启动出问题,求大神们指教错在哪啊
2016-07-14 02:53:47信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home/admin/upay/jdk1.6.0_43/jre/lib/amd64/server:/... -
eclipse上配置tomcat,发布web工程A,发布文件的位置在哪
2014-01-07 11:26:31eclipse上配置tomcat,发布web工程A,发布文件的位置在哪 ======================================== 以下仅个人观点,仅供参考 如:A项目:D:\javaeclipse\workspace\.metadata\.plugins\org.eclipse.wst.... -
我的ckeditor编辑器在tomcat下正常,但在weblogic12c下空白页,哪位大神指点一下
2016-12-16 02:03:28我的ckeditor编辑器在tomcat下正常,但在weblogic12c下空白页,web框架是jsf -
Tomcat中server.xml在哪?以及对server.xml内容的认识
2020-09-11 10:53:55位置如上, 内容解析如下: 一:主要框架 ...通过直接结构图可以看出server.xml文件中的元素可以分为以下4类: ...元素是整个配置文件的根元素,元素则代表一个Engine元素以及一组与之相连的Connector元素。... -
tomcat部署项目有哪几种方式?
2018-06-27 11:05:401、直接将web项目文件件拷贝到webapps目录中 (打war包,war包是需要tomcat的)Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将程序打包成一个 war包放在目录下... -
Rails 工程在tomcat发布后tomcat报错
2010-01-27 16:33:11ruby on rails 用Jruby 打包后发布到tomcat上,tomcat正常启动,但是在和数据库通信的时候tomcat报错,一下是错误信息: [color=red]The bundled mysql.rb driver has been removed from Rails 2.2. Please install...