{"id":2364,"date":"2022-08-17T10:24:23","date_gmt":"2022-08-17T02:24:23","guid":{"rendered":"https:\/\/199604.com\/?p=2364"},"modified":"2022-08-16T11:52:58","modified_gmt":"2022-08-16T03:52:58","slug":"tomcat-9-%e5%ae%89%e5%85%a8%e5%8a%a0%e5%9b%ba%e5%86%85%e5%ae%b9","status":"publish","type":"post","link":"https:\/\/199604.com\/2364","title":{"rendered":"Tomcat 9 \u5b89\u5168\u52a0\u56fa\u5185\u5bb9"},"content":{"rendered":"<h1>Tomcat 9 \u5b89\u5168\u52a0\u56fa\u5185\u5bb9<\/h1>\n<table>\n<thead>\n<tr>\n<th>NUM<\/th>\n<th>\u52a0\u56fa\u5185\u5bb9<\/th>\n<th>\u8bf4\u660e<\/th>\n<th>\u5907\u6ce8<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>\u8865\u4e01\u5b89\u88c5<\/td>\n<td>\u4f7f\u7528\u6700\u65b0\u7248\u672ctomcat<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>\u76ee\u5f55\u6743\u9650<\/td>\n<td>\u4fee\u6539tomcat\u76ee\u5f55\u6743\u9650\u4e3a\u8fd0\u884c\u7528\u6237<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>\u8fd0\u884c\u6743\u9650<\/td>\n<td>\u8fd0\u884ctomcat\u7684\u7528\u6237\u4e0d\u80fd\u662froot<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>\u5220\u9664\u9879\u76ee\u65e0\u5173\u6587\u4ef6\u548c\u76ee\u5f55<\/td>\n<td>\u5220\u9664webapps\/\u4e0b\u76ee\u5f55<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>\u5220\u9664\u63a7\u5236\u53f0<\/td>\n<td>\u5728tomcat-users.xml\u4e2d\u505c\u7528\u6240\u6709\u7528\u6237<\/td>\n<td>tomcat-users.xml<\/td>\n<\/tr>\n<tr>\n<td>6<\/td>\n<td>Shutdown Port<\/td>\n<td><\/td>\n<td>server.xml<\/td>\n<\/tr>\n<tr>\n<td>7<\/td>\n<td>\u7981\u6b62\u81ea\u52a8\u90e8\u7f72<\/td>\n<td><\/td>\n<td>server.xml<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td>\u5f00\u542f\u8bbf\u95ee\u65e5\u5fd7\u8bb0\u5f55<\/td>\n<td>localhost_access_log<\/td>\n<td>server.xml<\/td>\n<\/tr>\n<tr>\n<td>9<\/td>\n<td>\u7cfb\u7edfBanner<\/td>\n<td>\u9690\u85cftelnet\u5224\u65ad\u4fe1\u606f\uff0c\u9690\u85cfhttp\u8bf7\u6c42\u9519\u8bef\u4fe1\u606f<\/td>\n<td>server.xml \uff0ccatalina.jar<\/td>\n<\/tr>\n<tr>\n<td>10<\/td>\n<td>\u7981\u7528http\u65b9\u6cd5<\/td>\n<td>\u7981\u7528PUT \u3001DELETE \u7b49\u5371\u9669\u7684HTTP\u65b9\u6cd5<\/td>\n<td>web.xml<\/td>\n<\/tr>\n<tr>\n<td>11<\/td>\n<td>\u7981\u6b62\u76ee\u5f55\u6d4f\u89c8<\/td>\n<td><\/td>\n<td>web.xml<\/td>\n<\/tr>\n<tr>\n<td>12<\/td>\n<td>\u9519\u8bef\u9875\u9762<\/td>\n<td>404\u62a5\u9519\uff0cjava.lang.NullPointerException\u62a5\u9519<\/td>\n<td>web.xml<\/td>\n<\/tr>\n<tr>\n<td>13<\/td>\n<td>Website Icon<\/td>\n<td>\u4e0d\u662f\u5b89\u5168\u95ee\u9898\uff0c\u5f71\u54cd\u4e0d\u5927\uff0c\u6ca1\u6709\u7684\u8bdd\u90e8\u5206\u6d4f\u89c8\u5668\u6709\u62a5\u9519<\/td>\n<td>favicon.ico<\/td>\n<\/tr>\n<tr>\n<td>14<\/td>\n<td>\u4fee\u6539\u9ed8\u8ba4\u9ed8\u8ba4\u7aef\u53e3<\/td>\n<td><\/td>\n<td>server.xml<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>5. \u5220\u9664\u63a7\u5236\u53f0<\/h4>\n<p>\u5728tomcat-users.xml\u4e2d\u505c\u7528\u6240\u6709\u7528\u6237\uff0c\u9ed8\u8ba4\u5c31\u6ca1\u5f00<\/p>\n<h4>6. Shutdown Port and Command<\/h4>\n<p>\u63a8\u8350\u52a0\u56fa\u65b9\u5f0f\uff1a<\/p>\n<pre data-language=XML><code class=\"language-markup \">&lt;Server port=\"18005\" shutdown=\"stop\"&gt;\n<\/code><\/pre>\n<p><strong>\u53e6\u4e00\u79cd\u65b9\u6cd5\uff1a<\/strong><br \/>\n \u8fd8\u53ef\u4ee5\u8bbe\u7f6eport\u5c5e\u6027\u4e3a <code>-1<\/code>\uff0c\u5173\u95ed shutdown port<\/p>\n<pre data-language=XML><code class=\"language-markup \">&lt;Server port=\"-1\" shutdown=\"SHUTDOWN\"&gt;\n<\/code><\/pre>\n<blockquote><p>\n  \u5173\u95ed\u540e\uff0cbin\/shutdown.sh \u5c31\u5931\u6548\u4e86\uff0c\u63d0\u793a<code>SEVERE: No shutdown port configured. Shut down server through OS signal. Server not shut down.<\/code>\n<\/p><\/blockquote>\n<h4>7. \u7981\u6b62\u81ea\u52a8\u90e8\u7f72 (\u5728\u8fd0\u884c\u7684Tomcat\u90e8\u7f72\u5e94\u7528)<\/h4>\n<p>\u5c06host\u8282\u70b9\u7684autoDeploy\u5c5e\u6027\u8bbe\u7f6e\u4e3a\u201cfalse\u201d<br \/>\n \u5982\u679c\u5b58\u5728deployOnStartup\u5c5e\u6027\uff0c\u4e5f\u5c06\u5176\u66f4\u6539\u4e3a\u201cfalse\u201d<\/p>\n<pre data-language=XML><code class=\"language-markup \">    &lt;Host name=\"localhost\"  appBase=\"webapps\"\n            unpackWARs=\"true\" autoDeploy=\"false\"&gt;\n<\/code><\/pre>\n<h4>8. \u5f00\u542f\u8bbf\u95ee\u65e5\u5fd7\u8bb0\u5f55<\/h4>\n<p>server.xml<br \/>\n\u9ed8\u8ba4\u5c31\u6709\u5982\u4e0b\u914d\u7f6e\uff0c\u4e0d\u7528\u4fee\u6539<\/p>\n<pre><code class=\"language-swift \">     &lt;Valve className=\"org.apache.catalina.valves.AccessLogValve\" directory=\"logs\"\n               prefix=\"localhost_access_log\" suffix=\".txt\"\n               pattern=\"%h %l %u %t \"%r\" %s %b\" \/&gt;\n<\/code><\/pre>\n<h4>9. \u7cfb\u7edfBanner<\/h4>\n<h5>\u7981\u6b62Tomcat\u5728Response Header\u8fd4\u56deserver\u4fe1\u606f<\/h5>\n<pre data-language=XML><code class=\"language-markup \">&lt;Connector port=\"8080\" protocol=\"HTTP\/1.1\" connectionTimeout=\"20000\"  \nenableLookups=\"false\" redirectPort=\"8443\" server=\"Application Server\"  \/&gt;\n<\/code><\/pre>\n<p><code>server=\"\"<\/code> \u4e5f\u884c<\/p>\n<h5>\u9690\u85cferror page\u8fd4\u56de<\/h5>\n<p><strong>server.xml<\/strong><code>https:\/\/tomcat.apache.org\/tomcat-9.0-doc\/config\/valve.html#Error_Report_Valve<\/code><br \/>\n \u4fee\u6539Error_Report_Valve\u5c5e\u6027\u4e3a<code>false<\/code>\uff0c\u89e3\u51b3\u62a5\u9519\u6cc4\u9732,\u6dfb\u52a0\u597dhost\u90e8\u5206<\/p>\n<pre data-language=XML><code class=\"language-markup \">&lt;valve classname=\"org.apache.catalina.valves.ErrorReportValve\" showreport=\"false\" showserverinfo=\"false\"\/&gt;\n<\/code><\/pre>\n<p><strong>web.xml<\/strong><br \/>\n \u4fee\u6539DefaultServlet \u914d\u7f6e showServerInfo \u5c5e\u6027\u4e3a<code>false<\/code><\/p>\n<p>\u6216\u8005<\/p>\n<p>\u521b\u5efa\u6587\u4ef6<code>CATALINA_BASE\/lib\/org\/apache\/catalina\/util\/ServerInfo.properties<\/code>\uff0c\u5185\u5bb9\u4e3a\uff1a<\/p>\n<pre><code class=\"language-undefined \">server.info=Application Server\n<\/code><\/pre>\n<p><strong>\u6216\u8005<\/strong><\/p>\n<p>\u8fdb\u5165 <code>apache-tomcat-9.0.53\/lib\/<\/code> \u76ee\u5f55\uff0c\u6267\u884c\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-undefined \">jar xf catalina.jar org\/apache\/catalina\/util\/ServerInfo.properties\n<\/code><\/pre>\n<p>\u5982\u4e0a\u4f1a\u4ece<code>catalina.jar<\/code>\u89e3\u538b<code>org\/apache\/catalina\/util\/ServerInfo.properties<\/code>\u6587\u4ef6\uff0c\u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-shell \">[root@glj_vm lib]# cat org\/apache\/catalina\/util\/ServerInfo.properties  |grep -v '#'\nserver.info=Apache Tomcat\/9.0.53\nserver.number=9.0.53.0\nserver.built=Sep 6 2021 19:09:00 UTC\n<\/code><\/pre>\n<p>\u4fee\u6539<strong>server.info<\/strong> \u548c <strong>server.number<\/strong><\/p>\n<p>\u6267\u884c\u5982\u4e0b\uff0c\u5c06<code>org\/apache\/catalina\/util\/ServerInfo.properties<\/code>\u6253\u5305\u8fdb<code>catalina.jar<\/code><\/p>\n<pre><code class=\"language-undefined \">jar uf catalina.jar org\/apache\/catalina\/util\/ServerInfo.properties\n<\/code><\/pre>\n<h4>10. \u7981\u7528http\u65b9\u6cd5<\/h4>\n<p>\u7f16\u8f91web.xml \u6587\u4ef6\u4e2d\u914d\u7f6e\uff0c\u5c06readonly \u7684param-value\u503c\u8bbe\u4e3afalse<br \/>\n org.apache.catalina.servlets.DefaultServlet\u7684<\/p>\n<pre data-language=XML><code class=\"language-markup \">        &lt;init-param&gt;\n            &lt;param-name&gt;readonly&lt;\/param-name&gt;\n            &lt;param-value&gt;false&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n<\/code><\/pre>\n<h4>11. \u7981\u6b62\u76ee\u5f55\u6d4f\u89c8<\/h4>\n<p>conf\/web.xml<br \/>\n\u5c06listings\u7684\u503c\u8bbe\u7f6e\u4e3afalse\u3002<\/p>\n<pre data-language=XML><code class=\"language-markup \">        &lt;init-param&gt;\n            &lt;param-name&gt;listings&lt;\/param-name&gt;\n            &lt;param-value&gt;false&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n<\/code><\/pre>\n<h4>12. \u9519\u8bef\u9875\u9762<\/h4>\n<p>conf\/web.xml<br \/>\nweb-app\u6dfb\u52a0\u5b50\u8282\u70b9\uff1a<\/p>\n<pre data-language=XML><code class=\"language-markup \">  &lt;!-- == Error Pages == --&gt;\n    &lt;error-page&gt;\n        &lt;error-code&gt;403&lt;\/error-code&gt;\n        &lt;location&gt;\/403.html&lt;\/location&gt;\n    &lt;\/error-page&gt;\n\n    &lt;error-page&gt;\n        &lt;error-code&gt;404&lt;\/error-code&gt;\n        &lt;location&gt;\/404.html&lt;\/location&gt;\n    &lt;\/error-page&gt;\n\n    &lt;error-page&gt;\n        &lt;error-code&gt;500&lt;\/error-code&gt;\n        &lt;location&gt;\/500.html&lt;\/location&gt;\n    &lt;\/error-page&gt;\n\n    &lt;error-page&gt;\n        &lt;exception-type&gt;java.lang.NullPointerException&lt;\/exception-type&gt;\n        &lt;location&gt;\/error.&lt;\/location&gt;\n    &lt;\/error-page&gt;\n<\/code><\/pre>\n<p>\u5728webapps\u76ee\u5f55\u4e0b\u521b\u5efa<code>ROOT\/404.html<\/code>\uff0c\u5b9a\u4e49\u81ea\u5b9a\u4e49\u9519\u8bef\u4fe1\u606f\u3002\u8303\u4f8b\u5982\u4e0b\uff1a<\/p>\n<pre data-language=XML><code class=\"language-markup \">&lt;!doctype html&gt;\n&lt;html lang=\"zh-cn\"&gt;\n&lt;head&gt;\n  &lt;meta charset=\"utf-8\" \/&gt;\n  &lt;title&gt;HTTP\u72b6\u6001 404 - \u672a\u627e\u5230&lt;\/title&gt;\n  &lt;style type=\"text\/css\"&gt;body {font-family:Tahoma,Arial,sans-serif;text-align: center; padding: 50px; background-color:#2d2d2d; color:#fff;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}&lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;h1&gt;HTTP\u72b6\u6001 404 - \u672a\u627e\u5230&lt;\/h1&gt;\n  &lt;hr class=\"line\" \/&gt;\n  &lt;p&gt;&lt;b&gt;\u63cf\u8ff0&lt;\/b&gt; \u6e90\u670d\u52a1\u5668\u672a\u80fd\u627e\u5230\u76ee\u6807\u8d44\u6e90\u7684\u8868\u793a\u6216\u8005\u662f\u4e0d\u613f\u516c\u5f00\u4e00\u4e2a\u5df2\u7ecf\u5b58\u5728\u7684\u8d44\u6e90\u8868\u793a\u3002&lt;\/p&gt;\n  &lt;hr class=\"line\" \/&gt;\n  &lt;h3&gt;Application Server&lt;\/h3&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre>\n<h4>13. Change the Website Icon<\/h4>\n<p>\u6dfb\u52a0 64*64 \u7684LOGO\u5230 <code>&lt;Tomcat_Home&gt;\/webapps\/ROOT\/favicon.ico<\/code><\/p>\n<h4>14.<strong>\u4fee\u6539\u9ed8\u8ba4\u9ed8\u8ba4\u7aef\u53e3<\/strong><\/h4>\n<p>1.\u4fee\u6539\u9ed8\u8ba4\u7684 <code>8005<\/code>\u7ba1\u7406\u7aef\u53e3(\u6700\u597d\u5c06SHUTDOWN\u4fee\u6539\u4e3a\u5176\u4ed6\u5b57\u7b26\u4e32)<\/p>\n<p>2.\u4fee\u6539\u9ed8\u8ba4\u7684 <code>8009<\/code>AJP\u7aef\u53e3(\u672a\u7528\u5230\u7684\u8bdd\uff0c\u6700\u597d\u5173\u6389\u2014\u2014\u76f4\u63a5\u6ce8\u91ca\u6216\u5220\u6389)<\/p>\n<p>3.\u4fee\u6539\u9ed8\u8ba4\u7684 HTTP \u7aef\u53e3 <code>8080<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tomcat 9 \u5b89\u5168\u52a0\u56fa\u5185\u5bb9 NUM \u52a0\u56fa\u5185\u5bb9 \u8bf4\u660e \u5907\u6ce8 1 \u8865\u4e01\u5b89\u88c5 \u4f7f\u7528\u6700\u65b0\u7248\u672ctomcat 2 \u76ee\u5f55 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[284],"tags":[165],"class_list":["post-2364","post","type-post","status-publish","format-standard","hentry","category-tomcat","tag-tomcat"],"_links":{"self":[{"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/posts\/2364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/comments?post=2364"}],"version-history":[{"count":1,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/posts\/2364\/revisions"}],"predecessor-version":[{"id":2365,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/posts\/2364\/revisions\/2365"}],"wp:attachment":[{"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/media?parent=2364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/categories?post=2364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/199604.com\/wp-json\/wp\/v2\/tags?post=2364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}