`

Tomcat小结

阅读更多

 

 *************************************Tomcat安装配置*********************************************

1.安装TOMCAT

1.1 安装Tomcat 1.8

http://jingyan.baidu.com/album/e4d08ffdabb0710fd2f60de9.html?picindex=2

 

1)官方网站下载最新的tomcat: http://tomcat.apache.org/download-80.cgi

在ubuntu上,我们下载zip和tar.gz。

 

2)解压tomcat 8,用下面的命令(我下载的是tar.gz格式的):

tar -zxvf apache-tomcat-8.5.4.tar.gz

mkdir /usr/local/tomcat-temp;

cd /home/johnjia/softStore;

tar zxvf ./apache-tomcat-8.5.4.tar.gz -C /usr/local/tomcat-temp;

cd /usr/local/tomcat-temp

mv apache-tomcat-8.5.4 /usr/local/tomcat;

cd /usr/local/tomcat;

 

3)配置环境变量

cd /usr/local/tomcat-8.5.4/bin 

vi startup.sh

 

添加以下的内容:

##20160101add jdk jre

JAVA_HOME=/opt/jdk/jdk1.7.0_79

JRE_HOME=${JAVA_HOME}/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME

CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

TOMCAT_HOME=/opt/tomcat

 

设置linux下tomcat随机启动

http://blog.csdn.net/liuyan4794/article/details/16328077

 

执行命令:sh ./startup.sh &

进行连接连接不上,可能是防火墙的问题;

systemctl stop firewalld.service

 

查看端口被占用

netstat -apn | grep 8080

修稿TOMCAT启动端口

 

 

 

********************************************Tomcat进行优化******************************************************

参考:

http://www.cnblogs.com/shihaiming/p/5980412.html 这个参数配置挺全,内容似乎更全

 

http://blog.csdn.net/u010028869/article/details/51793821 这个说的挺详细

 

 

【我的实践:这里对比下Tomcat7 和 Tomcat8 2个版本】

一、Tomcat 安装

参考: http://www.cnblogs.com/shihaiming/p/5980412.html 

安装环境:

IP: 192.168.1.112

主机名:edu-web-02

Tomcat版本:apache-tomcat-8.5.4.tar.gz

安装路径:/usr/local/src/tomcat8

 

整个安装参考:上面的安装环境

##20160101add jdk jre

JAVA_HOME=/usr/local/src/jdk1.7.0_79/

JRE_HOME=${JAVA_HOME}/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME

CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

TOMCAT_HOME=/usr/local/src/tomcat8

测试是否可启动:

 

二、Tomcat 安全配置与优化

======2.1优化server.xml (这个优化的是什么内容呢?是为了安全)========

【2.1.1 隐藏版本信息】

 

隐藏HTTP头部的版本信息(消息头) 修改后,Server:APP Srv1.0

vi /usr/local/src/tomcat8/conf/server.xml

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>  

==> 新增属性 server="APP Srv1.0"

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" server="APP Srv1.0" />

 

隐藏404页面出现的版本号

方法1

修改 lib目录下,名称为 catalina.jar的Jar包,通过 jar xf 命令解压这个 jar 包会得到两个目录 META-INF 和 org ,

通过修改 org/apache/catalina/util/ServerInfo.properties 文件中 的 serverinfo 字段来实现来更改我们tomcat的版本信息

 

方法2:使用2和1一个效果

还有另外一种方法来实现隐藏或伪装Tomcat的版本信息,其本质和上面一样,操作如下:

[root@localhost ~]# cd /usr/local/tomcat8/lib

[root@localhost lib]# mkdir -p org/apache/catalina/util

[root@localhost lib]# cd org/apache/catalina/util

[root@localhost util]# vim ServerInfo.properties

server.info=nolinux        # 如果想修改成其它版本号,把这个地方的值改成其它值就行了

重启后生效

 

 

【2.1.2禁用Tomcat管理界面】

生产环境一般不适用Tomcat默认的管理界面,这些页面存放在Tomcat 的webapps安装目录下,

(1) 把该目录下的所有文件删除即可:rm -rf  /usr/local/src/tomcat8/webapps/*

(2) 删除相关的配置文件 host-manager.xml 和 manager.xml,在Tomcat 安装目录 conf/Catalina/localhost目录下。

(3) 注释或删除tomcat_user.xml 中的所有用户权限

 

【2.1.3  应用程序安全】

 tomcat默认 开启了对war热部署。为了防止被植入木马恶意攻击,我们要关闭war包自动部署。关闭自动加载最新代码(设置reloadable=false)

 做法:

 修改 tomcat\conf\server.xml

       <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

   ==改成==>

      <Host name="localhost"  appBase="webapps" unpackWARs="false" autoDeploy="false"   reloadable="false"> 

 

【2.1.4 更改关闭Tomcat的指令】

server.xml中定义了可以直接关闭 Tomcat 实例的管理端口。通过 telnet 连接上该端口之后,输入 SHUTDOWN (此为默认关闭指令)即可关闭 Tomcat 实例(注意,此时虽然实例关闭了,但是进程还是存在的)。

由于默认关闭 Tomcat 的端口和指令都很简单。默认端口为 8005,指令为SHUTDOWN 。因此我们需要将关闭指令修改复杂一点。当然,在新版的 Tomcat 中该端口仅监听在127.0.0.1上,因此大家也不必担心。除非黑客登陆到tomcat本机去执行关闭操作。

 

修改实例:

<Server port="8005" shutdown="9SDKJ29jksjf23sjf0LSDF92JKS9DKkjsd">

或者禁用8005端口

<Server port="-1" shutdown="SHUTDOWN">

 

 

----注,以下主要是tomcat的性能优化----

【2.1.5 连接池配置】: 使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。

编辑配置文件 server.xml : vi  /usr/local/src/tomcat8/conf/server.xml

 

(1)打开注释掉的 默认连接池配置

默认配置: <!--  <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"  maxThreads="150" minSpareThreads="4"/>  -->

并修改为:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"  maxThreads="150" minSpareThreads="100" prestartminSpareThreads="true" maxQueueSize="100"/>  

说明:

name: 线程池名称

namePrefix: 创建的Tomcat线程的前缀

deamon:是否守护线程运行,默认为true

minSpareThreads:线程池最小线程数,默认为25,指定线程池可以维持的空闲线程数量  

maxThreads : 最大并发连接数,不配置时默认200,一般建议设置500~ 800 ,要根据自己的硬件设施条件和实际业务需求而定。

maxIdleTime:空闲线程池的存活时间,默认是60s,当线程空闲超过该时间后,线程将会被回收

maxQueueSize: 最大的等待队列数,超过则拒绝请求,默认值为Integer.MAX_VALUE,建议改小,可以认为是maxConnections

prestartminSpareThreads:在tomcat初始化的时候就初始化minSpareThreads的值, 不设置true时minSpareThreads ,默认为false

executorTerminationTimeoutMillis:在停止Executor时,等待请求处理线程终止的超时时间

 

根据业务场景和压测来配置合理的线程池大小,配置太大的线程池在并发较大时会引起请求处理不过来导致响应慢,设置tomcat僵死

 

(2)修改配置

默认配置:<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="8443" />  

修改配置:<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"  

            connectionTimeout="20000"  

            redirectPort="8443"   

            executor="tomcatThreadPool"  

            enableLookups="false"   

            acceptCount="100"   

            maxPostSize="10485760"   

            compression="on"   

            disableUploadTimeout="true"   

            compressionMinSize="2048"   

            noCompressionUserAgents="gozilla, traviata"   

            acceptorThreadCount="2"   

            compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"   

            URIEncoding="utf-8"

server="APP Srv1.0"/> 

参数讲解:

port:连接端口。  

protocol:连接器使用的传输方式。 

提示: Tomcat 8 设置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol ; Tomcat 6、7 设置 nio 更好:org.apache.coyote.http11.Http11NioProtocol      

注:每个web客户端请求对于服务器端来说就一个单独的线程,客户端的请求数量增多将会导致线程数就上去了,CPU就忙着跟线程切换。

而NIO则是使用单线程(单个CPU)或者只使用少量的多线程(多CPU)来接受Socket,而由线程池来处理堵塞在pipe或者队列里的请求.这样的话,只要OS可以接受TCP的连接,web服务器就可以处理该请求。大大提高了web服务器的可伸缩性。   

executor:连接器使用的线程池名称

 

enableLookups:禁用DNS查询 

 

acceptCount:请求等待队列大小,当tomcat没有空闲线程处理连接请求时,新来的连接会放到请求等待队列中,队列大小默认设置 100 ,超过这个数的请求将被拒绝。

maxConnections:tomcat能够立即进行处理的最大并发连接数,超出后会放入到等待队列;BIO默认是maxThreads数量,NIO和NIO2默认是10000;ARP默认是8192

minSpareThreads:线程池最小线程数,默认为10,指定线程池可以维持的空闲线程数量 

maxThreads : 最大并发连接数,不配置时默认200,一般建议设置500~ 800 ,要根据自己的硬件设施条件和实际业务需求而定。

 

 

maxPostSize :限制 以FORM URL 参数方式的POST请求的内容大小,单位字节,默认是 2097152(2兆),10485760 为 10M。如果要禁用限制,则可以设置为 -1。

acceptorThreadCount : 用于接收连接的线程的数量,默认值是1。一般这个指需要改动的时候是因为该服务器是一个多核CPU,如果是多核 CPU 一般配置为 2。

compression :传输时是压缩。

compressionMinSize :压缩的大小

noCompressionUserAgents :不启用压缩的浏览器

提示:压缩会增加Tomcat负担,最好采用Nginx + Tomcat 或者 Apache + Tomcat 方式,压缩交由Nginx/Apache 去做。 

Tomcat 的压缩是在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的 浏览过程 HTML、CSS、Javascript和Text,它可以节省40% 左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP、JSP、ASP、Servlet,SHTML等输出的网页也能进行压缩,压缩效率也很高。

 

 

示例:假设配置为 maxThread=100,maxConnections=50,acceptCount=50,此时并发数为200;则50个线程处理50个并发连接,50个连接进入到等待队列,另100个背直接拒绝。

在NIO场景下,tomcat最大并发线程数由 maxThread和maxConnections最小值决定;

在BIO场景下,maxConnections 和 maxThread是一样的,当我们需要长连接场景时,应使用NIO,且maxConnections大于maxThread

 

 

 

 

【2.1.6 管理AJP端口】

AJP是为 Tomcat 与 HTTP 服务器之间通信而定制的协议,能提供较高的通信速度和效率。如果tomcat前端放的是apache的时候,会使用到AJP这个连接 器。 默认是开启的。如果不使用apache,注释该连接器。

<!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->

 

 

==========2.2 JVM ================

推荐阅读:https://github.com/judasn/Linux-Tutorial/blob/master/Tomcat-Install-And-Settings.md

 

模型资料来源:http://xmuzyq.iteye.com/blog/599750

配比资料:http://www.jianshu.com/p/d45e12241af4

Java 的内存模型分为:

 

1.Young,年轻代(易被 GC)。Young 区被划分为三部分,Eden 区和两个大小严格相同的 Survivor 区,其中 Survivor 区间中,某一时刻只有其中一个是被使用的,另外一个留做垃圾收集时复制对象用,在 Young 区间变满的时候,minor GC 就会将存活的对象移到空闲的Survivor 区间中,根据 JVM 的策略,在经过几次垃圾收集后,任然存活于 Survivor 的对象将被移动到 Tenured 区间。

2.Tenured,终身代。Tenured 区主要保存生命周期长的对象,一般是一些老的对象,当一些对象在 Young 复制转移一定的次数以后,对象就会被转移到 Tenured 区,一般如果系统中用了 application 级别的缓存,缓存中的对象往往会被转移到这一区间。

3.Perm,永久代。主要保存 class,method,filed 对象,这部门的空间一般不会溢出,除非一次性加载了很多的类,不过在涉及到热部署的应用服务器的时候,有时候会遇到 java.lang.OutOfMemoryError : PermGen space 的错误,造成这个错误的很大原因就有可能是每次都重新部署,但是重新部署后,类的 class 没有被卸载掉,这样就造成了大量的 class 对象保存在了 perm 中,这种情况下,一般重新启动应用服务器可以解决问题。

 

Linux 修改 /usr/program/tomcat7/bin/catalina.sh 文件,把下面信息添加到文件第一行。

    如果服务器只运行一个 Tomcat

        机子内存如果是 4G:

            CATALINA_OPTS="-Dfile.encoding=UTF-8 -server -Xms2048m -Xmx2048m -Xmn1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC"

        机子内存如果是 8G:

            CATALINA_OPTS="-Dfile.encoding=UTF-8 -server -Xms4096m -Xmx4096m -Xmn2048m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC"

        机子内存如果是 16G:

            CATALINA_OPTS="-Dfile.encoding=UTF-8 -server -Xms8192m -Xmx8192m -Xmn4096m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC"

        机子内存如果是 32G:

            CATALINA_OPTS="-Dfile.encoding=UTF-8 -server -Xms16384m -Xmx16384m -Xmn8192m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:SurvivorRatio=10 -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+DisableExplicitGC"

    如果是 8G 开发机

        -Xms2048m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=512m

    如果是 16G 开发机

        -Xms4096m -Xmx4096m -XX:NewSize=1024m -XX:MaxNewSize=2048m -XX:PermSize=256m -XX:MaxPermSize=512m

    参数说明:

-Dfile.encoding:默认文件编码

 -server:表示这是应用于服务器的配置,JVM 内部会有特殊处理的

 -Xmx1024m:设置JVM最大可用内存为1024MB

 -Xms1024m:设置JVM最小内存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

 -Xmn1024m:设置JVM新生代大小(JDK1.4之后版本)。一般-Xmn的大小是-Xms的1/2左右,不要设置的过大或过小,过大导致老年代变小,频繁Full GC,过小导致minor GC频繁。如果不设置-Xmn,可以采用-XX:NewRatio=2来设置,也是一样的效果

 -XX:NewSize:设置新生代大小

 -XX:MaxNewSize:设置最大的新生代大小

 -XX:PermSize:设置永久代大小

 -XX:MaxPermSize:设置最大永久代大小

 -XX:NewRatio=4:设置年轻代(包括 Eden 和两个 Survivor 区)与终身代的比值(除去永久代)。设置为 4,则年轻代与终身代所占比值为 1:4,年轻代占整个堆栈的 1/5

 -XX:MaxTenuringThreshold=10:设置垃圾最大年龄,默认为:15。如果设置为 0 的话,则年轻代对象不经过 Survivor 区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在 Survivor 区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。需要注意的是,设置了 -XX:MaxTenuringThreshold,并不代表着,对象一定在年轻代存活15次才被晋升进入老年代,它只是一个最大值,事实上,存在一个动态计算机制,计算每次晋入老年代的阈值,取阈值和MaxTenuringThreshold中较小的一个为准。

 -XX:+DisableExplicitGC:这个将会忽略手动调用 GC 的代码使得 System.gc() 的调用就会变成一个空调用,完全不会触发任何 GC

 

 

==========2.3 应用程序部署=======

默认tomcat是root身份运行的,这样不安全。不要使用root用户启动tomcat。Java程序与C程序不同。nginx,httpd 使用root用户启动守护80端口,子进程/线程会通过setuid(),setgid()两个函数切换到普通用户。即父进程所有者是root用户,子进程与多线程所有者是一个非root用户,这个用户没有shell,无法通过ssh与控制台登陆系统,

 

Java 的JVM 是与系统无关的,是建立在OS之上的,你使用什么用户启动Tomcat,那麽Tomcat 就会继承该所有者的权限。

为了防止 Tomcat 被植入 web shell 程序后,可以修改项目文件。因此我们要将 Tomcat 和项目的属主做分离,这样子,即便被搞,他也无法创建和编辑项目文件。 设置普通用户,用来启动tomcat

 

[root@localhost ~]# groupadd tomcat

[root@localhost ~]# useradd -g tomcat tomcat

[root@localhost ~]# passwd tomcat

[root@localhost ~]# chown tomcat.tomcat -R /usr/local/tomcat

[root@localhost ~]# su - tomcat /usr/local/tomcat/bin/startup.sh

[root@localhost ~]# echo 'su - tomcat -c "tomcat /usr/local/tomcat/bin/startup.sh"' >> /etc/rc.local  #开机启动

 

 

注:在测试压力时为查看Tomcat配置,进行如下配置

在conf/ tomcat-users.xml下添加用户: 使用tomcat tomcat登录 【版本8设置的时候有些问题】

 

<role rolename="manager"/>

<role rolename="manager-gui"/>

<role rolename="admin"/>

<role rolename="admin-gui"/>

<user username="tomcat" password="tomcat" roles="admin-gui,admin,manager-gui,manager"/>

 

 

 

 

 

 

********************************************常见问题及解决*******************************

tomcat webapp - manager进不去

修改:tomcat-user.xml

新增   

<role rolename="manager-gui"/>  

<user username="admin" password="admin" roles="manager-gui"/>

 

 

同时还需要修改,如无新建conf/Catalina/localhost/manager.xml 内容如下:

 

<Context privileged="true" antiResourceLocking="false"

         docBase="${catalina.home}/webapps/manager">

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />

</Context>

无须重启tomcat即可生效。

 

=========================

应用启动常见异常剖析

1.ava.lang.NoSuchMethodError: org.springframework.core.GenericTypeResolver.resolveTypeArguments(Ljava/lang/Class;Ljava/lang/Class;)[Ljava/lang/Class;  

    at org.springframework.core.convert.support.GenericConversionService.getRequiredTypeInfo(GenericConversionService.java:275)  

    at org.springframework.core.convert.support.GenericConversionService.addConverter(GenericConversionService.java:93)  

    at org.springframework.core.convert.support.DefaultConversionService.addScalarConverters(DefaultConversionService.java:61)  

    at org.springframework.core.convert.support.DefaultConversionService.addDefaultConverters(DefaultConversionService.java:53)  

    at org.springframework.core.convert.support.DefaultConversionService.<init>(DefaultConversionService.java:42)  

    at org.springframework.core.env.AbstractPropertyResolver.<init>(AbstractPropertyResolver.java:44)  

    at org.springframework.core.env.PropertySourcesPropertyResolver.<init>(PropertySourcesPropertyResolver.java:42)  

    at org.springframework.core.env.AbstractEnvironment.<init>(AbstractEnvironment.java:101)  

    at org.springframework.core.env.StandardEnvironment.<init>(StandardEnvironment.java:54)  

    at org.springframework.web.context.support.StandardServletEnvironment.<init>(StandardServletEnvironment.java:43)  

    at org.springframework.web.servlet.HttpServletBean.<init>(HttpServletBean.java:90)  

 

参考:http://blog.csdn.net/lxxxzzl/article/details/41517219

 

原因是maven的dependency中,依赖了不同版本的spring,spring2.5和3.1的冲突导致的。

解决办法是将使用了srping2.5的dependency加上exclusion,例如:

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<version>2.5.3</version>

<exclusions>

<exclusion>

<groupId>org.springframework</groupId>

<artifactId>spring</artifactId>

</exclusion>

</exclusions>

</dependency>

 

 

 一台机器上启动多个Tomcat

如果需要在一台机子上启动多个Tomcat服务器,在默认设置下肯定会发生端口冲突。为实现这个效果,只需修改conf子目录中的server.xml文件即可。共需修改三处:

 

(1).修改http访问端口(默认为8080端口):

<Connector port=”8080” protocol=”HTTP/1.1″ 

connectionTimeout=”20000″ 

redirectPort=”8443″ URIEncoding=”gb2312″/>

 

(2).修改Shutdown端口(默认为8005端口):

<Server port=”8005” shutdown=”SHUTDOWN”>

 

(3).修改JVM启动端口(默认为8009端口):

<Connector port=”8009” protocol=”AJP/1.3″ redirectPort=”8443″ /> 

分享到:
评论

相关推荐

    Tomcat中实现Session小结

    在本文中,我们将深入探讨Tomcat服务器中实现Session的相关知识,这包括Session的基本概念、目的、实现机制以及通过示例进行的详细解析。 **什么是Session?** Session是Web开发中用来跟踪用户状态的一种机制。...

    如何清除tomcat缓存

    #### 小结 通过上述方法,我们可以有效地解决Tomcat中的缓存问题。无论是手动删除缓存文件、配置`server.xml`文件还是控制浏览器缓存,都是解决缓存问题的有效手段。在实际工作中,根据具体情况选择合适的方法可以...

    TomCat的配置图解

    #### 四、小结 通过以上步骤,您可以成功地在Eclipse环境中配置好Tomcat服务器,为Java Web应用的开发和测试提供了一个良好的平台。此外,Sysdeo Eclipse Tomcat启动插件的加入使得整个过程更加便捷高效。如果您...

    tomcat的启动方法

    小结 启动 Tomcat 需要准备好 Java 运行环境,解压 Tomcat,设置环境变量,运行 startup.bat 文件,并可以根据需要更改端口号。最后,将项目部署到 Tomcat 的 webapps 目录下,并启动 Tomcat,就可以访问项目了。

    tomcat结合nginx使用小结.pdf

    ### Tomcat结合Nginx使用详解 #### 一、引言 随着互联网技术的发展与进步,Web服务领域的竞争也日益激烈。Apache与IIS作为传统的Web服务器,在很长一段时间内占据了市场的主导地位。然而,近年来,一款名为Nginx的...

    tomcat安装和配置

    Tomcat 安装和配置 ...小结 本文详细介绍了 Tomcat 的安装和配置过程,包括环境变量设置、内存设置、字符集设置和启动、关闭 Tomcat 服务器。通过本文,读者可以快速掌握 Tomcat 的安装和配置技能。

    apache和tomcat配置总结

    - **启动Apache**:服务启动成功后,小红点变为绿色,通过`http://localhost/`检查服务状态。 3. **Tomcat配置**: - **复制与命名**:创建两个Tomcat实例,如tomcat1和tomcat2,确保端口不冲突(例如8099和8098...

    如何把tomcat加到windows服务中

    #### 五、小结 通过上述步骤,我们可以轻松地将Tomcat添加到Windows服务中,并确保其能够开机自动启动。这对于提高系统的稳定性和管理效率具有重要意义。需要注意的是,在实际操作过程中可能会遇到各种各样的问题,...

    tomcat部署端口后修改

    小结 修改Tomcat的端口号可以避免端口号冲突,并且可以更好地管理和维护我们的应用程序。通过修改`conf/server.xml`文件,我们可以轻松地修改Tomcat的端口号。同时,我们也需要注意部署Tomcat的正确步骤,以确保...

    Tomcat6性能优化(小结).pdf

    Tomcat6是一款广泛使用的开源Java Servlet容器,主要用于部署Java Web应用程序。在优化Tomcat6的性能时,了解其内部工作原理以及如何调整配置至关重要。本篇文章将聚焦于Tomcat6的性能优化,特别是关于NIO(非阻塞I/...

    《深入剖析Tomcat(中文版+英文版)》.rar

    1.4 小结 第2章 一个简单的servlet容器 2.1 javax.servlet.servlet接口 2.2 应用程序 2.2.1 httpserver1类 2.2.2 request类 2.2.3 response类 2.2.4 staticresourceprocessor类 2.2.5 servletprocessor1类 ...

    tomcat下配置https环境

    四、小结 在本篇文章中,我们介绍了如何在 Tomcat 下配置 HTTPS 环境,包括生成密钥和配置 Tomcat。我们也测试了 HTTPS 连接,以确保配置正确。通过这篇文章,我们希望读者能够轻松地配置 Tomcat 的 HTTPS 环境。 ...

    tomcat部署多个项目

    #### 六、小结 通过上述介绍可以看出,在 Tomcat 上部署多个项目的方式多样且灵活。开发者可以根据实际需求选择最适合自己的部署方式,从而提高部署效率和项目的可维护性。希望本文能帮助您更好地理解和掌握 Tomcat...

    TOMCAT8简单配置说明

    #### 四、小结 通过上述步骤,您可以在Windows 7环境下轻松地安装和配置Tomcat 8。Apache Tomcat的安装配置并不复杂,但对于初学者来说,每一步都需要仔细操作以确保无误。随着经验的积累,您将会更加熟练地掌握...

    tomcat设置开机自启动介绍

    ### 小结 设置Tomcat开机自启动虽然看似简单,但对于保障Web应用的稳定运行至关重要。通过合理配置环境变量和创建系统服务,不仅可以提高系统的自动化水平,还能有效提升服务的可用性和响应速度。掌握这一技能,...

    Tomcat服务器配置详细步骤及常见错误总结

    #### 三、小结 以上内容详细介绍了如何在Windows操作系统中配置Tomcat服务器以及在配置过程中可能遇到的一些常见问题及其解决方案。正确配置JAVA_HOME环境变量是启动Tomcat的基础,而处理8080端口被占用的问题对于...

    eclipse与tomcat、weblogic远程调试小结(windows系统)

    Tomcat和WebLogic则是两种常用的Java应用服务器,用于部署和运行Web应用程序。本文将深入探讨如何在Windows系统上使用Eclipse进行远程调试Tomcat和WebLogic。 首先,我们需要理解远程调试的概念。远程调试允许...

Global site tag (gtag.js) - Google Analytics