tomcat

tomcat配置

unpackWARs=“true” autoDeploy=“true”

unpackWARs  自动解压
autoDeploy 自动部署

修改同tomcat 端口为80后启动不了。因为80是特权端口(不大于1023的端口),
改tomcat 为root用户启动,但这种不安全

生产tomcat不对外提供服务,用nginx做为代理tomcat

tomcat 8005 关闭端口
[root@rocky8 conf]# telnet 127.0.0.1 8005
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‘^]’.
SHUTDOWN
Connection closed by foreign host

Centext 配置方式

Context作用:
路径映射:将url映射至指定路径,而非使用appBase下的物理目录,实现虚拟目录功能
应用独立配置,例如单独配置应用日志、单独配置应用访问控制

配置在 访问8080/test 就去访问/data/luo/

说明:
path:指的是访问的URL路径,如果path与appBase下面的子目录同名,context的docBase路径优先级更高
docBase:可以是磁盘文件的绝对路径,也可以是相对路径(相对于Host的appBase)
reloadable:true表示如果WEB-INF/classes或META-INF/lib目录下.class文件有改动,就会将WEB应用重新加载。生产环境中,建议使用false来禁用。

tomcat 访问日志

      <Host name="n80.luo.com"  appBase="/data/n80"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="n80.luo.com_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>

" 代表双引号

json格式日志:

      </Host>
      <Host name="n80.luo.com"  appBase="/data/n80"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="n80.luo.com_access_log" suffix=".txt"
               pattern="{"clientip":"%h","ClientUser":"%l","authenticated":"%u","AccessTime":"%t",&q
uot;method":"%r","status":"%s","SendBytes":"%b","Query?string":"%q","partner":"%{Referer}i
","AgentVersion":"%{User-Agent}i"}"/>
      </Host

tomcat 性能优化

垃圾回收

指定
vi /usr/local/tomcat/bin# vim catalina.sh 添加
JAVA_OPTS=“-Xms1g -Xmx1g”
-Xms 设置应用程序初始使用的堆内存大小(年轻代
+老年代)

-Xmx1
设置应用程序能获得的最大堆内存
早期JVM不建议超过32G,内存管理效率下降

垃圾回收器.

在 tomcat 开启远程 JMX

root@ubuntu20:/usr/local/tomcat/bin# vim catalina.sh 
CATALINA_OPTS="$CATALINA__OPTS \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1234 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ss1=false \
-Djava.rmi.server.hostname=192.168.74.220"


root@ubuntu20:/usr/local/tomcat/bin# netstat -antp|grep   1234
tcp6       0      0 :::1234                 :::*                    LISTEN      39826/java     

tomcat_第1张图片

修改tomcat并发连接
默认200
添加:
root@ubuntu20:/usr/local/tomcat/conf# vi server.xml
maxThreads=“2000”
在这里插入图片描述

maven编译jpress

克隆代码
 git clone  https://gitee.com/JPressProjects/jpress.git
 编译
/apps/jpress# mvn clean install package -Dmaven.test.skip=true

在Maven中,cleaninstall是两个常用的构建生命周期阶段。下面是它们的含义:

  • clean阶段:执行clean阶段会清理项目目录中生成的所有构建产物,包括编译生成的类文件、打包生成的JAR文件等。这样做可以确保在每次构建之前,项目处于一个干净的状态。

  • install阶段:执行install阶段会将项目的构建产物安装到本地Maven仓库中。这个本地仓库位于你的计算机上,它充当了Maven构建系统的缓存,用于存储项目的依赖关系和构建产物。通过将构建产物安装到本地仓库,其他项目就能够在其依赖声明中引用这些构建产物。

另外,-Dmaven.test.skip=true是一个Maven命令行选项,用于跳过执行项目的测试。通过设置该选项为true,Maven构建将忽略项目中的测试代码并直接进行构建和安装操作。这在一些情况下可以加快构建的速度,但同时也会跳过项目的测试步骤。

查看jar包

cd starter-tomcat/target/

root@server02:/apps/jpress/starter-tomcat/target# ls
classes  maven-archiver  starter-tomcat-5.0  starter-tomcat-5.0-classes.jar  starter-tomcat-5.0.war

拷贝jar包到tomcat目录
/apps/jpress/starter-tomcat/target# cp starter-tomcat-5.0.war /var/lib/tomcat9/webapps/jpress.war

显示安装页面
tomcat_第2张图片

JVM的组成
JVM的常见垃圾回收器
JVM的常见启动参数
JAVA程序出现OOM,如何解决
看是否是配置的参数内存不够,还是真正的内存不够

Tomcat的优化方法

最大连接数
java优化

tomca配置参数

JAVA_OPTS="-server -Xms4g -Xmx4g -Xss512k -Xmn1g -
XX:CMSInitiatingOccupancyFraction=65 -XX:+AggressiveOpts -XX:+UseBiasedLocking -
XX:+DisableExplicitGC -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -
XX:PermSize=128m -XX:MaxPermSize=512m -XX:CMSFullGCsBeforeCompaction=5 -
XX:+ExplicitGCInvokesConcurrent -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -
XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -
XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods"





JAVA_OPTS 是一个用于设置 Java 虚拟机的运行参数的环境变量。它可以在启动 Java 应用程序时用于配置 JVM 的各种参数。

在你提供的命令中,JAVA_OPTS 环境变量设置了以下参数:

- `-server` :启用服务器模式,优化 Java 虚拟机在长时间运行的服务器应用程序上的性能。
- `-Xms4g` :设置 Java 堆的初始大小为 4GB。
- `-Xmx4g` :设置 Java 堆的最大大小为 4GB。
- `-Xss512k` :设置每个线程的 Java 栈大小为 512KB。
- `-Xmn1g` :设置年轻代的大小为 1GB。
- `-XX:CMSInitiatingOccupancyFraction=65` :设置 CMS 收集器触发老年代垃圾收集的占用阈值为 65%。
- `-XX:+AggressiveOpts` :启用 Java 虚拟机的侵略性优化。
- `-XX:+UseBiasedLocking` :启用偏向锁优化。
- `-XX:+DisableExplicitGC` :禁用显式垃圾回收操作。
- `-XX:MaxTenuringThreshold=10` :设置对象在年轻代和老年代之间晋升的最大阈值为 10。
- `-XX:NewRatio=2` :设置年轻代和老年代的比例为 1:2。
- `-XX:PermSize=128m` :设置永久代的初始大小为 128MB。
- `-XX:MaxPermSize=512m` :设置永久代的最大大小为 512MB。
- `-XX:CMSFullGCsBeforeCompaction=5` :在进行一次完整的 CMS 垃圾收集之前进行 5 次 CMS 并发收集。
- `-XX:+ExplicitGCInvokesConcurrent` :允许显式的 System.gc() 调用并发执行。
- `-XX:+UseConcMarkSweepGC` :启用使用并发标记清除收集器(CMS)作为老年代的垃圾收集器。
- `-XX:+UseParNewGC` :启用使用并行年轻代收集器(ParNew)作为年轻代的垃圾收集器。
- `-XX:+CMSParallelRemarkEnabled` :启用 CMS 垃圾收集器的并行重标记阶段。
- `-XX:+UseCMSCompactAtFullCollection` :在进行一次完整的 CMS 垃圾收集之后,启用进行内存碎片整理。
- `-XX:LargePageSizeInBytes=128m` :设置大页面的大小为 128MB,用于提高内存分配的效率。
- `-XX:+UseFastAccessorMethods` :使用快速访问方法来提高对象的访问性能。

这些参数可以根据具体的应用程序和硬件环境进行调整和优化。请根据你的需求和环境进行合理的配置。

你可能感兴趣的:(tomcat,java)