<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Tomcat on Anttu&#39;s Blog</title>
		<link>https://anTtutu.github.io/categories/tomcat/</link>
		<description>Recent content in Tomcat on Anttu&#39;s Blog</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Mon, 10 May 2021 08:30:00 +0800</lastBuildDate>
		
			<atom:link href="https://anTtutu.github.io/categories/tomcat/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>tomcat配置https：keytool生成证书与server.xml配置</title>
				<link>https://anTtutu.github.io/post/2021-05-10-tomcat-https-ssl/</link>
				<pubDate>Mon, 10 May 2021 08:30:00 +0800</pubDate>
				<guid>https://anTtutu.github.io/post/2021-05-10-tomcat-https-ssl/</guid>
				<description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;内部系统要上 https，当时没有 CA 签发的证书，就用 keytool 做了自签名证书给 tomcat 配上。流程整理下，最后补上新版 JDK/tomcat 的差异说明——老环境照旧，新环境看最后一段。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1生成安全证书&#34;&gt;1、生成安全证书&lt;/h2&gt;&#xA;&lt;p&gt;JDK 1.4 以后都自带 keytool，在 &lt;code&gt;&amp;lt;JAVA_HOME&amp;gt;\bin&lt;/code&gt; 下：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;keytool -genkeypair -alias &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;tomcat&amp;#34;&lt;/span&gt; -keyalg &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;RSA&amp;#34;&lt;/span&gt; -keystore &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;f:\tomcat.keystore&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;参数说明：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;-alias&lt;/code&gt;：证书别名，之后引用都用它&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;-keyalg&lt;/code&gt;：密钥算法，RSA&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;-keystore&lt;/code&gt;：keystore 文件的存放位置&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;命令会交互式问一串信息，其中**「名字与姓氏」必须填域名**（比如 &lt;a href=&#34;https://www.example.com&#34;&gt;www.example.com&lt;/a&gt;），这是最容易踩的坑——填成自己的姓名，之后运行时证书的域名和实际访问的域名对不上，浏览器照样报证书警告。密码我输的是 tomcat（测试环境），其余按实际情况填。&lt;/p&gt;</description>
			</item>
			<item>
				<title>tomcat环境及线程池、JDK配置详解</title>
				<link>https://anTtutu.github.io/post/2020-11-16-tomcat-jvm/</link>
				<pubDate>Mon, 16 Nov 2020 08:00:00 +0800</pubDate>
				<guid>https://anTtutu.github.io/post/2020-11-16-tomcat-jvm/</guid>
				<description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;生产环境中 tomcat 的 JVM 和线程池设置不好，很容易出现内存溢出或被流量打垮。这篇整理 tomcat 的三块核心配置：JVM 内存参数（catalina.sh）、线程池（server.xml）、JNDI 数据源（context.xml），以及常见内存溢出的原因和解决方法。&lt;/p&gt;&#xA;&lt;h2 id=&#34;一常见的三种-java-内存溢出&#34;&gt;一、常见的三种 Java 内存溢出&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-jvm-heap堆溢出&#34;&gt;1. JVM Heap（堆）溢出&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;java.lang.OutOfMemoryError: Java heap space&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;JVM 启动时会自动设置 Heap 的值：初始空间（&lt;code&gt;-Xms&lt;/code&gt;）是物理内存的 1/64，最大空间（&lt;code&gt;-Xmx&lt;/code&gt;）不可超过物理内存。Heap 的大小是 Young Generation 和 Tenured Generation 之和。在 JVM 中如果 98% 的时间用于 GC 且可用的 Heap size 不足 2%，将抛出此异常。&lt;/p&gt;</description>
			</item>
			<item>
				<title>tomcat开启远程debug</title>
				<link>https://anTtutu.github.io/post/2019-07-12-tomcat-remote-debug/</link>
				<pubDate>Fri, 12 Jul 2019 08:00:00 +0800</pubDate>
				<guid>https://anTtutu.github.io/post/2019-07-12-tomcat-remote-debug/</guid>
				<description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;测试环境的问题在本地复现不出来，最直接的办法就是远程 debug：本地 IDEA 打断点，连到测试环境的 tomcat 上单步跟。配置很简单，给 catalina 加一段 JDWP 参数就行，但有个 shutdown.sh 失效的坑要提前知道。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1配置方法&#34;&gt;1、配置方法&lt;/h2&gt;&#xA;&lt;p&gt;linux 下在 catalina.sh 开头（或者按规范放 bin/setenv.sh）加：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#953800&#34;&gt;CATALINA_OPTS&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;windows 下修改 catalina.bat：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bat&#34; data-lang=&#34;bat&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;SET&lt;/span&gt; &lt;span style=&#34;color:#953800&#34;&gt;CATALINA_OPTS&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;=&lt;/span&gt;-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;参数含义：&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
