{"id":739,"date":"2025-03-24T08:53:06","date_gmt":"2025-03-23T23:53:06","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=739"},"modified":"2025-03-24T08:53:06","modified_gmt":"2025-03-23T23:53:06","slug":"%e3%80%902024%e5%b9%b4%e4%bf%9d%e5%ad%98%e7%89%88%e3%80%91apache-tomcat%e3%81%ae%e9%80%a3%e6%90%ba%e6%89%8b%e9%a0%86%e3%82%92%e5%be%b9%e5%ba%95%e8%a7%a3%e8%aa%ac%ef%bc%815%e3%81%a4%e3%81%ae%e5%ae%9f","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=739","title":{"rendered":"\u30102024\u5e74\u4fdd\u5b58\u7248\u3011Apache Tomcat\u306e\u9023\u643a\u624b\u9806\u3092\u5fb9\u5e95\u89e3\u8aac\uff015\u3064\u306e\u5b9f\u8df5\u7684\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u65b9\u6cd5\u3068\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">Apache Tomcat\u3068\u306f\uff1f\u9023\u643a\u306e\u91cd\u8981\u6027\u3092\u7406\u89e3\u3057\u3088\u3046<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u306eTomcat\u306e\u5f79\u5272<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-2\">Tomcat\u9023\u643a\u304c\u3082\u305f\u3089\u30593\u3064\u306e\u4e3b\u8981\u306a\u30e1\u30ea\u30c3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-6\">Apache Tomcat\u3068Java\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u9023\u643a\u624b\u9806<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-7\">\u958b\u767a\u74b0\u5883\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u8981\u4ef6<\/a>      <\/li>      <li>        <a href=\"#i-10\">Tomcat\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-12\">server.xml\u306e\u8a2d\u5b9a\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-15\">5\u3064\u306e\u5b9f\u8df5\u7684\u306aTomcat\u9023\u643a\u30d1\u30bf\u30fc\u30f3<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-16\">\u30b9\u30bf\u30f3\u30c9\u30a2\u30ed\u30f3\u3067\u306eTomcat\u5b9f\u884c\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-19\">IDE\u304b\u3089\u306e\u9023\u643a\u8a2d\u5b9a\uff08Eclipse\/IntelliJ IDEA\uff09<\/a>      <\/li>      <li>        <a href=\"#i-22\">Maven\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u306e\u9023\u643a\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-25\">Spring Boot\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068Tomcat\u306e\u7d71\u5408<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-28\">Docker\u74b0\u5883\u3067\u306eTomcat\u9023\u643a<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-32\">Tomcat\u9023\u643a\u6642\u306e\u91cd\u8981\u306a\u8a2d\u5b9a\u9805\u76ee<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-33\">\u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u6700\u9069\u5316\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-36\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-39\">\u30ed\u30b0\u8a2d\u5b9a\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-43\">\u3088\u304f\u3042\u308b\u30c8\u30e9\u30d6\u30eb\u3068\u89e3\u6c7a\u65b9\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-44\">\u8d77\u52d5\u6642\u306e\u30dd\u30fc\u30c8\u7af6\u5408\u306e\u89e3\u6c7a\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-45\">404\/500\u30a8\u30e9\u30fc\u306e\u4e3b\u306a\u539f\u56e0\u3068\u5bfe\u51e6\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-48\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u306e\u8a3a\u65ad\u3068\u6539\u5584<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-52\">\u904b\u7528\u74b0\u5883\u3067\u306e\u6ce8\u610f\u70b9\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-53\">\u672c\u756a\u74b0\u5883\u3067\u306e\u63a8\u5968\u8a2d\u5b9a<\/a>      <\/li>      <li>        <a href=\"#i-56\">\u52b9\u7387\u7684\u306a\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30d5\u30ed\u30fc<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-59\">\u76e3\u8996\u3068\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u306e\u91cd\u8981\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-63\">\u307e\u3068\u3081\uff1aApache Tomcat\u9023\u643a\u306e\u5b9f\u8df5\u306b\u5411\u3051\u3066<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-64\">\u91cd\u8981\u30dd\u30a4\u30f3\u30c8\u306e\u7dcf\u62ec<\/a>      <\/li>      <li>        <a href=\"#i-65\">\u74b0\u5883\u5225\u306e\u63a8\u5968\u69cb\u6210\u4e00\u89a7<\/a>      <\/li>      <li>        <a href=\"#i-66\">\u4eca\u5f8c\u306e\u767a\u5c55\u306b\u5411\u3051\u3066<\/a>      <\/li>      <li>        <a href=\"#i-67\">\u6700\u5f8c\u306b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-68\">\u53c2\u8003\u30ea\u30f3\u30af<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">Apache Tomcat\u3068\u306f\uff1f\u9023\u643a\u306e\u91cd\u8981\u6027\u3092\u7406\u89e3\u3057\u3088\u3046<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u306eTomcat\u306e\u5f79\u5272<\/h3>\n\n\n\n<p>Apache Tomcat\u306f\u3001Java\u30d9\u30fc\u30b9\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u30fc\u3067\u3059\u3002\u4e3b\u306bJava Servlet\u3001JavaServer Pages\uff08JSP\uff09\u3001WebSocket\u306a\u3069\u306e\u6280\u8853\u3092\u5229\u7528\u3057\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u884c\u74b0\u5883\u3068\u3057\u3066\u6a5f\u80fd\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-sgb-block-simple sgb-box-simple sgb-box-simple--title-normal sgb-box-simple--with-border\"><div style=\"background-color:var(--wp--preset--color--sango-main);color:#FFF\" class=\"sgb-box-simple__title\">\u4e3b\u8981\u306a\u6a5f\u80fd\u3068\u7279\u5fb4<\/div><div class=\"sgb-box-simple__body\" style=\"border-color:var(--wp--preset--color--sango-main);background-color:#FFF\">\n<ol class=\"wp-block-list\">\n<li><strong>Servlet\/JSP\u30b3\u30f3\u30c6\u30ca<\/strong>\n<ul class=\"wp-block-list\">\n<li>Java Servlet\u306e\u5b9f\u884c\u74b0\u5883\u3092\u63d0\u4f9b<\/li>\n\n\n\n<li>JSP\u30da\u30fc\u30b8\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\u3068\u5b9f\u884c<\/li>\n\n\n\n<li>WebSocket\u306e\u30b5\u30dd\u30fc\u30c8<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Web \u30b5\u30fc\u30d0\u30fc\u6a5f\u80fd<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u9759\u7684\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u914d\u4fe1<\/li>\n\n\n\n<li>HTTP\u30ea\u30af\u30a8\u30b9\u30c8\/\u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u51e6\u7406<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u7ba1\u7406<\/strong>\n<ul class=\"wp-block-list\">\n<li>WAR\u30d5\u30a1\u30a4\u30eb\u306e\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8<\/li>\n\n\n\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30e9\u30a4\u30d5\u30b5\u30a4\u30af\u30eb\u7ba1\u7406<\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u306e\u52b9\u7387\u7684\u306a\u7ba1\u7406<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/div><\/div>\n\n\n\n<p>\u4e0b\u8a18\u306bApache Tomcat\u306e\u7bc4\u56f2\u3092\u56f3\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"539\" height=\"473\" src=\"https:\/\/dexall.co.jp\/articles\/wp-content\/uploads\/2024\/11\/image.png\" alt=\"\" class=\"wp-image-742\" srcset=\"https:\/\/dexall.co.jp\/articles\/wp-content\/uploads\/2024\/11\/image.png 539w, https:\/\/dexall.co.jp\/articles\/wp-content\/uploads\/2024\/11\/image-300x263.png 300w\" sizes=\"auto, (max-width: 539px) 100vw, 539px\"><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">Tomcat\u9023\u643a\u304c\u3082\u305f\u3089\u30593\u3064\u306e\u4e3b\u8981\u306a\u30e1\u30ea\u30c3\u30c8<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-3\">1. \u9ad8\u5ea6\u306a\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8ca0\u8377\u5206\u6563\u306e\u5b9f\u73fe<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u8907\u6570\u306eTomcat\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b\u3088\u308b\u6c34\u5e73\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\u306e\u52b9\u7387\u5316<\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u306e\u52b9\u7387\u7684\u306a\u6d3b\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6700\u9069\u5316<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30ad\u30e3\u30c3\u30b7\u30f3\u30b0\u6a5f\u80fd\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30ea\u30f3\u30b0<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u306e\u6700\u9069\u5316<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-4\">2. \u5805\u7262\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u591a\u5c64\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3<\/strong>\n<ul class=\"wp-block-list\">\n<li>SSL\u30b5\u30dd\u30fc\u30c8<\/li>\n\n\n\n<li>\u30a2\u30af\u30bb\u30b9\u5236\u5fa1<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d5\u30a3\u30eb\u30bf\u30fc<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u8a8d\u8a3c\u30fb\u8a8d\u53ef\u306e\u67d4\u8edf\u306a\u5b9f\u88c5<\/strong>\n<ul class=\"wp-block-list\">\n<li>BASIC\u8a8d\u8a3c<\/li>\n\n\n\n<li>\u30d5\u30a9\u30fc\u30e0\u30d9\u30fc\u30b9\u8a8d\u8a3c<\/li>\n\n\n\n<li>SSO\uff08\u30b7\u30f3\u30b0\u30eb\u30b5\u30a4\u30f3\u30aa\u30f3\uff09\u5bfe\u5fdc<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-5\">3. \u958b\u767a\u52b9\u7387\u3068\u904b\u7528\u6027\u306e\u5411\u4e0a<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u52b9\u7387\u7684\u306a\u958b\u767a\u74b0\u5883<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30db\u30c3\u30c8\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8<\/li>\n\n\n\n<li>\u30c7\u30d0\u30c3\u30b0\u30c4\u30fc\u30eb\u306e\u7d71\u5408<\/li>\n\n\n\n<li>IDE\u9023\u643a\u306e\u30b5\u30dd\u30fc\u30c8<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u904b\u7528\u7ba1\u7406\u306e\u5bb9\u6613\u3055<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u3088\u308b\u76e3\u8996<\/li>\n\n\n\n<li>\u8a73\u7d30\u306a\u30ed\u30b0\u7ba1\u7406<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\/\u30ea\u30b9\u30c8\u30a2\u6a5f\u80fd<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\"><strong>\u5b9f\u969b\u306e\u6d3b\u7528\u30b7\u30fc\u30f3<\/strong><\/p>\n\n\n<div id=\"id-d45aa839-27ca-40fc-8176-3be665a95d1e\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6d3b\u7528\u30b7\u30fc\u30f3<\/th><th>Tomcat\u306e\u5f79\u5272<\/th><th>\u4e3b\u306a\u30e1\u30ea\u30c3\u30c8<\/th><\/tr><\/thead><tbody><tr><td>\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/td><td>\u57fa\u5e79\u30b7\u30b9\u30c6\u30e0\u306e\u5b9f\u884c\u57fa\u76e4<\/td><td>\u9ad8\u3044\u4fe1\u983c\u6027\u3068\u5b89\u5b9a\u6027<\/td><\/tr><tr><td>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9<\/td><td>\u30b3\u30f3\u30c6\u30ca\u5316\u3055\u308c\u305f\u30b5\u30fc\u30d3\u30b9\u5b9f\u884c\u74b0\u5883<\/td><td>\u8efd\u91cf\u3067\u67d4\u8edf\u306a\u30c7\u30d7\u30ed\u30a4<\/td><\/tr><tr><td>\u30ec\u30ac\u30b7\u30fc\u30b7\u30b9\u30c6\u30e0\u7d71\u5408<\/td><td>\u65e2\u5b58\u30b7\u30b9\u30c6\u30e0\u3068\u306e\u9023\u643a\u57fa\u76e4<\/td><td>\u4e92\u63db\u6027\u306e\u78ba\u4fdd<\/td><\/tr><tr><td>\u30af\u30e9\u30a6\u30c9\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/td><td>\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u5b9f\u884c\u74b0\u5883<\/td><td>\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u306e\u78ba\u4fdd<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u3053\u308c\u3089\u306e\u7279\u5fb4\u306b\u3088\u308a\u3001Apache Tomcat\u306f\u73fe\u4ee3\u306eJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u4e0d\u53ef\u6b20\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u7279\u306b\u3001\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3084\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u306a\u74b0\u5883\u3067\u306e\u6d3b\u7528\u304c\u5897\u52a0\u3057\u3066\u304a\u308a\u3001\u305d\u306e\u91cd\u8981\u6027\u306f\u4eca\u5f8c\u3082\u9ad8\u307e\u3063\u3066\u3044\u304f\u50be\u5411\u306b\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-6\">Apache Tomcat\u3068Java\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u9023\u643a\u624b\u9806<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-7\">\u958b\u767a\u74b0\u5883\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u8981\u4ef6<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-8\">\u5fc5\u8981\u306a\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3068\u30d0\u30fc\u30b8\u30e7\u30f3<\/h4>\n\n\n<div id=\"id-083d2ebb-cc13-4522-9c49-1451177ee3a5\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2<\/th><th>\u63a8\u5968\u30d0\u30fc\u30b8\u30e7\u30f3<\/th><th>\u5099\u8003<\/th><\/tr><\/thead><tbody><tr><td>Java Development Kit (JDK)<\/td><td>JDK 11\u4ee5\u4e0a<\/td><td>LTS\u7248\u63a8\u5968<\/td><\/tr><tr><td>Apache Tomcat<\/td><td>9.x\/10.x<\/td><td>Jakarta EE 9\u5bfe\u5fdc<\/td><\/tr><tr><td>\u7d71\u5408\u958b\u767a\u74b0\u5883 (IDE)<\/td><td>Eclipse\/IntelliJ IDEA\u6700\u65b0\u7248<\/td><td>Tomcat\u30d7\u30e9\u30b0\u30a4\u30f3\u5fc5\u9808<\/td><\/tr><tr><td>Build Tool<\/td><td>Maven 3.8.x\u4ee5\u4e0a<\/td><td>\u4f9d\u5b58\u95a2\u4fc2\u7ba1\u7406\u7528<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-9\">\u30b7\u30b9\u30c6\u30e0\u8981\u4ef6<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6700\u5c0f\u30b7\u30b9\u30c6\u30e0\u8981\u4ef6<\/strong>\n<ul class=\"wp-block-list\">\n<li>CPU: \u30c7\u30e5\u30a2\u30eb\u30b3\u30a2\u4ee5\u4e0a<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea: 4GB\u4ee5\u4e0a\uff08\u958b\u767a\u74b0\u5883\uff09<\/li>\n\n\n\n<li>\u30c7\u30a3\u30b9\u30af\u7a7a\u304d\u5bb9\u91cf: 10GB\u4ee5\u4e0a<\/li>\n\n\n\n<li>OS: Windows 10\/11, macOS 10.15\u4ee5\u964d, Linux<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-10\">Tomcat\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-11\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>JDK\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Ubuntu\u306e\u5834\u5408\nsudo apt update\nsudo apt install openjdk-11-jdk\n\n# \u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\nexport JAVA_HOME=\/usr\/lib\/jvm\/java-11-openjdk\nexport PATH=$JAVA_HOME\/bin:$PATH<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Tomcat\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u5c55\u958b<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Tomcat 9.x\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u5c55\u958b\nwget https:\/\/downloads.apache.org\/tomcat\/tomcat-9\/v9.0.85\/bin\/apache-tomcat-9.0.85.tar.gz\ntar -xvf apache-tomcat-9.0.85.tar.gz\nmv apache-tomcat-9.0.85 \/opt\/tomcat9<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u57fa\u672c\u7684\u306a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u306e\u78ba\u8a8d<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$CATALINA_HOME\/\n\u251c\u2500\u2500 bin\/           # \u8d77\u52d5\u30b9\u30af\u30ea\u30d7\u30c8\u306a\u3069\n\u251c\u2500\u2500 conf\/          # \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\n\u251c\u2500\u2500 lib\/           # \u5171\u901a\u30e9\u30a4\u30d6\u30e9\u30ea\n\u251c\u2500\u2500 logs\/          # \u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\n\u251c\u2500\u2500 webapps\/       # Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\n\u2514\u2500\u2500 work\/          # \u4f5c\u696d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">server.xml\u306e\u8a2d\u5b9a\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-13\">\u4e3b\u8981\u306a\u8a2d\u5b9a\u9805\u76ee<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Connector\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- HTTP\/1.1 Connector\u8a2d\u5b9a --&gt;\n&lt;Connector port=\"8080\" protocol=\"HTTP\/1.1\"\n           connectionTimeout=\"20000\"\n           redirectPort=\"8443\"\n           maxThreads=\"150\"\n           minSpareThreads=\"25\"\n           maxSpareThreads=\"75\"\n           acceptCount=\"100\" \/&gt;<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>SSL\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- HTTPS Connector\u8a2d\u5b9a --&gt;\n&lt;Connector port=\"8443\" protocol=\"org.apache.coyote.http11.Http11NioProtocol\"\n           maxThreads=\"150\" SSLEnabled=\"true\"&gt;\n    &lt;SSLHostConfig&gt;\n        &lt;Certificate certificateKeystoreFile=\"conf\/localhost-rsa.jks\"\n                     type=\"RSA\" \/&gt;\n    &lt;\/SSLHostConfig&gt;\n&lt;\/Connector&gt;<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\"><strong>\u91cd\u8981\u306a\u8a2d\u5b9a\u30d1\u30e9\u30e1\u30fc\u30bf\u89e3\u8aac<\/strong><\/p>\n\n\n<div id=\"id-d20d0f1a-dd9f-460e-91a5-3c8c117b40f2\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d1\u30e9\u30e1\u30fc\u30bf<\/th><th>\u8aac\u660e<\/th><th>\u63a8\u5968\u5024<\/th><\/tr><\/thead><tbody><tr><td>port<\/td><td>\u5f85\u3061\u53d7\u3051\u30dd\u30fc\u30c8\u756a\u53f7<\/td><td>8080\uff08HTTP\uff09\/8443\uff08HTTPS\uff09<\/td><\/tr><tr><td>maxThreads<\/td><td>\u6700\u5927\u540c\u6642\u5b9f\u884c\u30b9\u30ec\u30c3\u30c9\u6570<\/td><td>150-300<\/td><\/tr><tr><td>connectionTimeout<\/td><td>\u63a5\u7d9a\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u6642\u9593<\/td><td>20000ms<\/td><\/tr><tr><td>enableLookups<\/td><td>DNS\u30eb\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u6709\u52b9\u5316<\/td><td>false<\/td><\/tr><tr><td>compression<\/td><td>\u30ec\u30b9\u30dd\u30f3\u30b9\u5727\u7e2e\u306e\u6709\u52b9\u5316<\/td><td>on<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-14\">\u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\u4f8b<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># catalina.sh\u306e\u8a2d\u5b9a\u4f8b\nJAVA_OPTS=\"$JAVA_OPTS -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m\"\nJAVA_OPTS=\"$JAVA_OPTS -Dfile.encoding=UTF-8\"\nJAVA_OPTS=\"$JAVA_OPTS -Duser.timezone=Asia\/Tokyo\"<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001\u57fa\u672c\u7684\u306aTomcat\u74b0\u5883\u304c\u69cb\u7bc9\u3055\u308c\u3001Java\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u6e96\u5099\u304c\u6574\u3044\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u306f\u672c\u756a\u74b0\u5883\u3078\u306e\u30c7\u30d7\u30ed\u30a4\u6642\u306b\u3055\u3089\u306a\u308b\u8abf\u6574\u304c\u5fc5\u8981\u306b\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-15\">5\u3064\u306e\u5b9f\u8df5\u7684\u306aTomcat\u9023\u643a\u30d1\u30bf\u30fc\u30f3<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-16\">\u30b9\u30bf\u30f3\u30c9\u30a2\u30ed\u30f3\u3067\u306eTomcat\u5b9f\u884c\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-17\">\u57fa\u672c\u7684\u306a\u8d77\u52d5\u3068\u505c\u6b62<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Tomcat\u306e\u8d77\u52d5\n$ cd $CATALINA_HOME\/bin\n$ .\/startup.sh\n\n# \u8d77\u52d5\u78ba\u8a8d\n$ tail -f ..\/logs\/catalina.out\n\n# Tomcat\u306e\u505c\u6b62\n$ .\/shutdown.sh<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-18\">\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30d7\u30ed\u30a4\u65b9\u6cd5<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># WAR\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u7f6e\n$ cp your-application.war $CATALINA_HOME\/webapps\/\n\n# \u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30d1\u30b9\u306e\u8a2d\u5b9a\n$ vim $CATALINA_HOME\/conf\/server.xml<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- Context\u8a2d\u5b9a\u4f8b --&gt;\n&lt;Context path=\"\/myapp\" docBase=\"your-application.war\" reloadable=\"true\"&gt;\n    &lt;!-- \u30ea\u30bd\u30fc\u30b9\u8a2d\u5b9a --&gt;\n    &lt;Resource name=\"jdbc\/MyDB\" auth=\"Container\"\n              type=\"javax.sql.DataSource\"\n              maxTotal=\"100\" maxIdle=\"30\"\n              username=\"db_user\" password=\"db_password\"\n              driverClassName=\"com.mysql.cj.jdbc.Driver\"\n              url=\"jdbc:mysql:\/\/localhost:3306\/mydb\"\/&gt;\n&lt;\/Context&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-19\">IDE\u304b\u3089\u306e\u9023\u643a\u8a2d\u5b9a\uff08Eclipse\/IntelliJ IDEA\uff09<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-20\">Eclipse \u3067\u306e\u8a2d\u5b9a\u624b\u9806<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Tomcat\u30b5\u30fc\u30d0\u30fc\u306e\u8ffd\u52a0<\/strong>\n<ul class=\"wp-block-list\">\n<li>Window \u2192 Preferences \u2192 Server \u2192 Runtime Environments<\/li>\n\n\n\n<li>Add \u2192 Apache \u2192 Tomcat 9.0<\/li>\n\n\n\n<li>Tomcat\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u9078\u629e<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- pom.xml\u306e\u8a2d\u5b9a\u4f8b --&gt;\n&lt;project&gt;\n    &lt;packaging&gt;war&lt;\/packaging&gt;\n    &lt;dependencies&gt;\n        &lt;dependency&gt;\n            &lt;groupId&gt;javax.servlet&lt;\/groupId&gt;\n            &lt;artifactId&gt;javax.servlet-api&lt;\/artifactId&gt;\n            &lt;version&gt;4.0.1&lt;\/version&gt;\n            &lt;scope&gt;provided&lt;\/scope&gt;\n        &lt;\/dependency&gt;\n    &lt;\/dependencies&gt;\n    &lt;build&gt;\n        &lt;plugins&gt;\n            &lt;plugin&gt;\n                &lt;groupId&gt;org.apache.maven.plugins&lt;\/groupId&gt;\n                &lt;artifactId&gt;maven-war-plugin&lt;\/artifactId&gt;\n                &lt;version&gt;3.3.2&lt;\/version&gt;\n            &lt;\/plugin&gt;\n        &lt;\/plugins&gt;\n    &lt;\/build&gt;\n&lt;\/project&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-21\">IntelliJ IDEA \u3067\u306e\u8a2d\u5b9a\u624b\u9806<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Tomcat\u306e\u8a2d\u5b9a<\/strong>\n<ul class=\"wp-block-list\">\n<li>Run \u2192 Edit Configurations<\/li>\n\n\n\n<li>+ \u2192 Tomcat Server \u2192 Local<\/li>\n\n\n\n<li>Configure\u2026 \u3067Tomcat\u30db\u30fc\u30e0\u3092\u8a2d\u5b9a<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u306e\u8a2d\u5b9a<\/strong>\n<ul class=\"wp-block-list\">\n<li>Project Structure \u2192 Artifacts<\/li>\n\n\n\n<li>+ \u2192 Web Application: Exploded<\/li>\n\n\n\n<li>Output Layout \u306e\u8a2d\u5b9a<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-22\">Maven\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u306e\u9023\u643a\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-23\">Maven\u8a2d\u5b9a\u4f8b<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- pom.xml\u306eTomcat Plugin\u8a2d\u5b9a --&gt;\n&lt;plugin&gt;\n    &lt;groupId&gt;org.apache.tomcat.maven&lt;\/groupId&gt;\n    &lt;artifactId&gt;tomcat7-maven-plugin&lt;\/artifactId&gt;\n    &lt;version&gt;2.2&lt;\/version&gt;\n    &lt;configuration&gt;\n        &lt;url&gt;http:\/\/localhost:8080\/manager\/text&lt;\/url&gt;\n        &lt;server&gt;TomcatServer&lt;\/server&gt;\n        &lt;path&gt;\/myapp&lt;\/path&gt;\n        &lt;update&gt;true&lt;\/update&gt;\n    &lt;\/configuration&gt;\n&lt;\/plugin&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-24\">\u30c7\u30d7\u30ed\u30a4\u30b3\u30de\u30f3\u30c9<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Maven\u306b\u3088\u308b\u30c7\u30d7\u30ed\u30a4\nmvn tomcat7:deploy\n\n# \u518d\u30c7\u30d7\u30ed\u30a4\nmvn tomcat7:redeploy\n\n# \u30a2\u30f3\u30c7\u30d7\u30ed\u30a4\nmvn tomcat7:undeploy<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-25\">Spring Boot\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3068Tomcat\u306e\u7d71\u5408<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-26\">\u7d44\u307f\u8fbc\u307fTomcat\u306e\u8a2d\u5b9a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">@SpringBootApplication\npublic class Application {\n    public static void main(String[] args) {\n        SpringApplication.run(Application.class, args);\n    }\n}<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># application.properties\/yaml \u306e\u8a2d\u5b9a\u4f8b\nserver:\n  port: 8080\n  servlet:\n    context-path: \/myapp\n  tomcat:\n    max-threads: 200\n    min-spare-threads: 10\n    max-connections: 10000\n    accept-count: 100\n    connection-timeout: 5000<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-27\">\u5916\u90e8Tomcat\u3078\u306e\u30c7\u30d7\u30ed\u30a4\u8a2d\u5b9a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- pom.xml\u306e\u8a2d\u5b9a --&gt;\n&lt;packaging&gt;war&lt;\/packaging&gt;\n&lt;dependencies&gt;\n    &lt;dependency&gt;\n        &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n        &lt;artifactId&gt;spring-boot-starter-web&lt;\/artifactId&gt;\n        &lt;exclusions&gt;\n            &lt;exclusion&gt;\n                &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n                &lt;artifactId&gt;spring-boot-starter-tomcat&lt;\/artifactId&gt;\n            &lt;\/exclusion&gt;\n        &lt;\/exclusions&gt;\n    &lt;\/dependency&gt;\n    &lt;dependency&gt;\n        &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n        &lt;artifactId&gt;spring-boot-starter-tomcat&lt;\/artifactId&gt;\n        &lt;scope&gt;provided&lt;\/scope&gt;\n    &lt;\/dependency&gt;\n&lt;\/dependencies&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-28\">Docker\u74b0\u5883\u3067\u306eTomcat\u9023\u643a<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-29\">Dockerfile\u306e\u4f5c\u6210<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">FROM tomcat:9.0-jdk11-openjdk-slim\n\n# \u4e0d\u8981\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u524a\u9664\nRUN rm -rf \/usr\/local\/tomcat\/webapps\/*\n\n# WAR\u30d5\u30a1\u30a4\u30eb\u306e\u30b3\u30d4\u30fc\nCOPY target\/*.war \/usr\/local\/tomcat\/webapps\/ROOT.war\n\n# Tomcat\u8a2d\u5b9a\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\nCOPY tomcat\/conf\/ \/usr\/local\/tomcat\/conf\/\n\n# \u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\nENV JAVA_OPTS=\"-Xms512m -Xmx1024m -Djava.awt.headless=true\"\n\nEXPOSE 8080\nCMD [\"catalina.sh\", \"run\"]<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-30\">Docker Compose\u306e\u8a2d\u5b9a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">version: '3.8'\nservices:\n  tomcat:\n    build: .\n    ports:\n      - \"8080:8080\"\n    volumes:\n      - .\/logs:\/usr\/local\/tomcat\/logs\n    environment:\n      - JAVA_OPTS=-Xms512m -Xmx1024m\n      - CATALINA_OPTS=-Dspring.profiles.active=docker\n    networks:\n      - app-network\n\nnetworks:\n  app-network:\n    driver: bridge<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-31\">\u30c7\u30d7\u30ed\u30a4\u30b3\u30de\u30f3\u30c9<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30a4\u30e1\u30fc\u30b8\u306e\u30d3\u30eb\u30c9\u3068\u8d77\u52d5\ndocker-compose build\ndocker-compose up -d\n\n# \u30ed\u30b0\u306e\u78ba\u8a8d\ndocker-compose logs -f\n\n# \u30b3\u30f3\u30c6\u30ca\u306e\u505c\u6b62\ndocker-compose down<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u9023\u643a\u30d1\u30bf\u30fc\u30f3\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u8981\u4ef6\u3084\u958b\u767a\u74b0\u5883\u306b\u5fdc\u3058\u3066\u9069\u5207\u306b\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u5404\u30d1\u30bf\u30fc\u30f3\u306b\u306f\u305d\u308c\u305e\u308c\u5229\u70b9\u3068\u6ce8\u610f\u70b9\u304c\u3042\u308a\u3001\u4ee5\u4e0b\u306e\u89b3\u70b9\u304b\u3089\u9078\u629e\u3092\u691c\u8a0e\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\"><strong>\u9078\u629e\u3059\u3079\u304d\u89b3\u70b9<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u958b\u767a\u30c1\u30fc\u30e0\u306e\u7fd2\u719f\u5ea6<\/li>\n\n\n\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u898f\u6a21<\/li>\n\n\n\n<li>\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u8981\u4ef6<\/li>\n\n\n\n<li>\u904b\u7528\u7ba1\u7406\u306e\u5bb9\u6613\u3055<\/li>\n\n\n\n<li>\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u8981\u4ef6<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-32\">Tomcat\u9023\u643a\u6642\u306e\u91cd\u8981\u306a\u8a2d\u5b9a\u9805\u76ee<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-33\">\u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u6700\u9069\u5316\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-34\">JVM\u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># JAVA_OPTS \u306e\u8a2d\u5b9a\u4f8b\nJAVA_OPTS=\"$JAVA_OPTS -server\"\nJAVA_OPTS=\"$JAVA_OPTS -Xms2048m -Xmx2048m\"  # \u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\nJAVA_OPTS=\"$JAVA_OPTS -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m\"  # Metaspace\nJAVA_OPTS=\"$JAVA_OPTS -XX:+UseG1GC\"  # G1GC\u306e\u4f7f\u7528\nJAVA_OPTS=\"$JAVA_OPTS -XX:MaxGCPauseMillis=200\"  # GC\u505c\u6b62\u6642\u9593\u306e\u76ee\u6a19\u5024<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-35\">\u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u76ee\u5b89\u8868<\/h4>\n\n\n<div id=\"id-0b9fbcfc-03dc-4651-ba25-abe722d321af\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u74b0\u5883<\/th><th>\u6700\u5c0f\u30d2\u30fc\u30d7(-Xms)<\/th><th>\u6700\u5927\u30d2\u30fc\u30d7(-Xmx)<\/th><th>Metaspace<\/th><th>\u5099\u8003<\/th><\/tr><\/thead><tbody><tr><td>\u958b\u767a\u74b0\u5883<\/td><td>1GB<\/td><td>2GB<\/td><td>256MB<\/td><td>\u958b\u767a\u30c4\u30fc\u30eb\u4f7f\u7528\u8003\u616e<\/td><\/tr><tr><td>\u30c6\u30b9\u30c8\u74b0\u5883<\/td><td>2GB<\/td><td>4GB<\/td><td>512MB<\/td><td>\u8ca0\u8377\u30c6\u30b9\u30c8\u7528<\/td><\/tr><tr><td>\u672c\u756a\u74b0\u5883<\/td><td>4GB<\/td><td>8GB<\/td><td>1GB<\/td><td>\u9ad8\u8ca0\u8377\u5bfe\u5fdc<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-36\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-37\">server.xml\u3067\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- \u30bb\u30ad\u30e5\u30a2\u306aConnector\u8a2d\u5b9a --&gt;\n&lt;Connector port=\"8443\" protocol=\"org.apache.coyote.http11.Http11NioProtocol\"\n           maxThreads=\"150\" SSLEnabled=\"true\" scheme=\"https\" secure=\"true\"\n           keystoreFile=\"${user.home}\/.keystore\" keystorePass=\"changeit\"\n           clientAuth=\"false\" sslProtocol=\"TLS\"\n           ciphers=\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\"\/&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-38\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a2\u30af\u30bb\u30b9\u5236\u5fa1<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- web.xml\u3067\u306e\u5236\u9650\u8a2d\u5b9a --&gt;\n&lt;security-constraint&gt;\n    &lt;web-resource-collection&gt;\n        &lt;web-resource-name&gt;Restricted Area&lt;\/web-resource-name&gt;\n        &lt;url-pattern&gt;\/admin\/*&lt;\/url-pattern&gt;\n    &lt;\/web-resource-collection&gt;\n    &lt;auth-constraint&gt;\n        &lt;role-name&gt;admin&lt;\/role-name&gt;\n    &lt;\/auth-constraint&gt;\n    &lt;user-data-constraint&gt;\n        &lt;transport-guarantee&gt;CONFIDENTIAL&lt;\/transport-guarantee&gt;\n    &lt;\/user-data-constraint&gt;\n&lt;\/security-constraint&gt;<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30af\u30ed\u30b9\u30b5\u30a4\u30c8\u30b9\u30af\u30ea\u30d7\u30c6\u30a3\u30f3\u30b0\u5bfe\u7b56<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- context.xml\u3067\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d8\u30c3\u30c0\u30fc\u8a2d\u5b9a --&gt;\n&lt;Context&gt;\n    &lt;Valve className=\"org.apache.catalina.valves.HeaderSecurityValve\"\n           hstsEnabled=\"true\"\n           hstsMaxAgeSeconds=\"31536000\"\n           hstsIncludeSubDomains=\"true\"\n           antiClickJackingEnabled=\"true\"\n           antiClickJackingOption=\"DENY\"\n           xssProtectionEnabled=\"true\"\n           blockContentTypeSniffingEnabled=\"true\"\/&gt;\n&lt;\/Context&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-39\">\u30ed\u30b0\u8a2d\u5b9a\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-40\">\u30ed\u30b0\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u8a2d\u5b9a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- server.xml\u3067\u306e\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u8a2d\u5b9a --&gt;\n&lt;Valve className=\"org.apache.catalina.valves.AccessLogValve\"\n       directory=\"logs\"\n       prefix=\"localhost_access_log\"\n       suffix=\".txt\"\n       pattern=\"%h %l %u %t &amp;quot;%r&amp;quot; %s %b %D\"\n       rotatable=\"true\"\n       fileDateFormat=\"yyyy-MM-dd\"\n       maxDays=\"90\"\/&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-41\">log4j2.xml\u8a2d\u5b9a\u4f8b<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;Configuration status=\"INFO\"&gt;\n    &lt;Appenders&gt;\n        &lt;!-- \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30ed\u30b0 --&gt;\n        &lt;RollingFile name=\"RollingFile\"\n                     fileName=\"${sys:catalina.base}\/logs\/application.log\"\n                     filePattern=\"${sys:catalina.base}\/logs\/application-%d{yyyy-MM-dd}-%i.log\"&gt;\n            &lt;PatternLayout pattern=\"%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n\"\/&gt;\n            &lt;Policies&gt;\n                &lt;TimeBasedTriggeringPolicy\/&gt;\n                &lt;SizeBasedTriggeringPolicy size=\"10 MB\"\/&gt;\n            &lt;\/Policies&gt;\n            &lt;DefaultRolloverStrategy max=\"10\"\/&gt;\n        &lt;\/RollingFile&gt;\n\n        &lt;!-- \u30a8\u30e9\u30fc\u30ed\u30b0 --&gt;\n        &lt;RollingFile name=\"ErrorFile\"\n                     fileName=\"${sys:catalina.base}\/logs\/error.log\"\n                     filePattern=\"${sys:catalina.base}\/logs\/error-%d{yyyy-MM-dd}-%i.log\"&gt;\n            &lt;PatternLayout pattern=\"%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n\"\/&gt;\n            &lt;Policies&gt;\n                &lt;TimeBasedTriggeringPolicy\/&gt;\n                &lt;SizeBasedTriggeringPolicy size=\"10 MB\"\/&gt;\n            &lt;\/Policies&gt;\n            &lt;DefaultRolloverStrategy max=\"10\"\/&gt;\n        &lt;\/RollingFile&gt;\n    &lt;\/Appenders&gt;\n\n    &lt;Loggers&gt;\n        &lt;Root level=\"INFO\"&gt;\n            &lt;AppenderRef ref=\"RollingFile\"\/&gt;\n        &lt;\/Root&gt;\n        &lt;Logger name=\"com.example.app\" level=\"DEBUG\" additivity=\"false\"&gt;\n            &lt;AppenderRef ref=\"RollingFile\"\/&gt;\n            &lt;AppenderRef ref=\"ErrorFile\" level=\"ERROR\"\/&gt;\n        &lt;\/Logger&gt;\n    &lt;\/Loggers&gt;\n&lt;\/Configuration&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-42\">\u30ed\u30b0\u30ec\u30d9\u30eb\u306e\u63a8\u5968\u8a2d\u5b9a<\/h4>\n\n\n<div id=\"id-433bdcca-0328-457e-9dbe-8169c4ec72a9\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u74b0\u5883<\/th><th>Root Level<\/th><th>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3 Level<\/th><th>\u5099\u8003<\/th><\/tr><\/thead><tbody><tr><td>\u958b\u767a<\/td><td>DEBUG<\/td><td>TRACE<\/td><td>\u8a73\u7d30\u306a\u30c7\u30d0\u30c3\u30b0\u60c5\u5831<\/td><\/tr><tr><td>\u30c6\u30b9\u30c8<\/td><td>INFO<\/td><td>DEBUG<\/td><td>\u52d5\u4f5c\u78ba\u8a8d\u7528<\/td><\/tr><tr><td>\u672c\u756a<\/td><td>WARN<\/td><td>INFO<\/td><td>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8003\u616e<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8981\u4ef6\u3084\u74b0\u5883\u306b\u5fdc\u3058\u3066\u9069\u5207\u306b\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u7279\u306b\u672c\u756a\u74b0\u5883\u3067\u306f\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u30d0\u30e9\u30f3\u30b9\u3092\u8003\u616e\u3057\u305f\u8a2d\u5b9a\u304c\u91cd\u8981\u3067\u3059\u3002\u307e\u305f\u3001\u5b9a\u671f\u7684\u306a\u8a2d\u5b9a\u306e\u898b\u76f4\u3057\u3068\u66f4\u65b0\u3092\u884c\u3046\u3053\u3068\u3067\u3001\u30b7\u30b9\u30c6\u30e0\u306e\u5b89\u5b9a\u6027\u3068\u5b89\u5168\u6027\u3092\u7dad\u6301\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-43\">\u3088\u304f\u3042\u308b\u30c8\u30e9\u30d6\u30eb\u3068\u89e3\u6c7a\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-44\">\u8d77\u52d5\u6642\u306e\u30dd\u30fc\u30c8\u7af6\u5408\u306e\u89e3\u6c7a\u65b9\u6cd5<\/h3>\n\n\n\n<p class=\"is-style-sango-paragraph-exclamation-alt\"><strong>\u75c7\u72b6\u3068\u8a3a\u65ad<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u4f8b<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">SEVERE [main] org.apache.catalina.core.StandardService.startInternal\nFailed to start connector [Connector[HTTP\/1.1-8080]]\njava.net.BindException: Address already in use: bind<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u539f\u56e0\u7279\u5b9a\u306e\u30b3\u30de\u30f3\u30c9<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Windows\u306e\u5834\u5408\nnetstat -ano | findstr 8080\ntaskkill \/PID &lt;\u78ba\u8a8d\u3055\u308c\u305fPID&gt; \/F\n\n# Linux\u306e\u5834\u5408\nlsof -i :8080\nkill -9 &lt;\u78ba\u8a8d\u3055\u308c\u305fPID&gt;<\/pre>\n\n\n\n<p class=\"is-style-sango-paragraph-idea-alt\"><strong>\u89e3\u6c7a\u624b\u9806<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30dd\u30fc\u30c8\u756a\u53f7\u306e\u5909\u66f4<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- server.xml\u3067\u30dd\u30fc\u30c8\u5909\u66f4 --&gt;\n&lt;Connector port=\"8081\" protocol=\"HTTP\/1.1\"\n           connectionTimeout=\"20000\"\n           redirectPort=\"8443\" \/&gt;<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u65e2\u5b58\u30d7\u30ed\u30bb\u30b9\u306e\u7d42\u4e86\u78ba\u8a8d<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Tomcat\u30d7\u30ed\u30bb\u30b9\u306e\u78ba\u5b9f\u306a\u7d42\u4e86\n$ cd $CATALINA_HOME\/bin\n$ .\/shutdown.sh\n$ ps -ef | grep tomcat<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-45\">404\/500\u30a8\u30e9\u30fc\u306e\u4e3b\u306a\u539f\u56e0\u3068\u5bfe\u51e6\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-46\">404\u30a8\u30e9\u30fc\uff08Not Found\uff09<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u554f\u984c<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># WAR\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u7f6e\u78ba\u8a8d\nls -l $CATALINA_HOME\/webapps\/\n# \u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30eb\u30fc\u30c8\u306e\u78ba\u8a8d\ncat $CATALINA_HOME\/conf\/server.xml<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/strong>\n<ul class=\"wp-block-list\">\n<li>[ ] WAR\u30d5\u30a1\u30a4\u30eb\u304c\u6b63\u3057\u304f\u5c55\u958b\u3055\u308c\u3066\u3044\u308b\u304b<\/li>\n\n\n\n<li>[ ] \u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30d1\u30b9\u304c\u6b63\u3057\u304f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u304b<\/li>\n\n\n\n<li>[ ] \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8d77\u52d5\u30ed\u30b0\u306b\u30a8\u30e9\u30fc\u304c\u306a\u3044\u304b<\/li>\n\n\n\n<li>[ ] \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5236\u9650\u306b\u62b5\u89e6\u3057\u3066\u3044\u306a\u3044\u304b<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-47\">500\u30a8\u30e9\u30fc\uff08Internal Server Error\uff09<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30ed\u30b0\u78ba\u8a8d\u624b\u9806<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># catalina.out\u306e\u78ba\u8a8d\ntail -f $CATALINA_HOME\/logs\/catalina.out\n\n# \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30ed\u30b0\u306e\u78ba\u8a8d\ntail -f $CATALINA_HOME\/logs\/localhost.&lt;\u65e5\u4ed8&gt;.log<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u4e00\u822c\u7684\u306a\u539f\u56e0\u3068\u5bfe\u51e6<\/strong><\/li>\n<\/ol>\n\n\n<div id=\"id-0b8234e4-93d1-4be4-a40a-49f6df018681\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30a8\u30e9\u30fc\u7a2e\u5225<\/th><th>\u539f\u56e0<\/th><th>\u5bfe\u51e6\u65b9\u6cd5<\/th><\/tr><\/thead><tbody><tr><td>ClassNotFoundException<\/td><td>\u30af\u30e9\u30b9\u30d1\u30b9\u306e\u554f\u984c<\/td><td>\u4f9d\u5b58\u95a2\u4fc2\u306e\u78ba\u8a8d\u3068\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8ffd\u52a0<\/td><\/tr><tr><td>NullPointerException<\/td><td>\u521d\u671f\u5316\u5931\u6557<\/td><td>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8d77\u52d5\u9806\u5e8f\u78ba\u8a8d<\/td><\/tr><tr><td>OutOfMemoryError<\/td><td>\u30e1\u30e2\u30ea\u4e0d\u8db3<\/td><td>JVM\u30e1\u30e2\u30ea\u8a2d\u5b9a\u306e\u898b\u76f4\u3057<\/td><\/tr><tr><td>SQLException<\/td><td>DB\u63a5\u7d9a\u30a8\u30e9\u30fc<\/td><td>\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u8a2d\u5b9a\u306e\u78ba\u8a8d<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-48\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u306e\u8a3a\u65ad\u3068\u6539\u5584<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-49\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8a3a\u65ad\u30c4\u30fc\u30eb<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>JVM\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># JVM\u30d2\u30fc\u30d7\u30c0\u30f3\u30d7\u306e\u53d6\u5f97\njmap -dump:format=b,file=heap.bin &lt;PID&gt;\n\n# \u30b9\u30ec\u30c3\u30c9\u30c0\u30f3\u30d7\u306e\u53d6\u5f97\njstack -l &lt;PID&gt; &gt; thread_dump.txt<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Visual VM\u4f7f\u7528\u4f8b<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ JMX\u63a5\u7d9a\u7528\u8a2d\u5b9a\nJAVA_OPTS=\"$JAVA_OPTS -Dcom.sun.management.jmxremote\"\nJAVA_OPTS=\"$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9090\"\nJAVA_OPTS=\"$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false\"\nJAVA_OPTS=\"$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false\"<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-50\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- context.xml\u3067\u306e\u30ea\u30bd\u30fc\u30b9\u30d7\u30fc\u30eb\u8a2d\u5b9a --&gt;\n&lt;Resource name=\"jdbc\/MyDB\"\n          type=\"javax.sql.DataSource\"\n          maxTotal=\"100\"\n          maxIdle=\"30\"\n          maxWaitMillis=\"10000\"\n          validationQuery=\"SELECT 1\"\n          testOnBorrow=\"true\"\n          removeAbandonedOnBorrow=\"true\"\n          removeAbandonedTimeout=\"60\"\/&gt;<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30b9\u30ec\u30c3\u30c9\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- server.xml\u3067\u306eExecutor\u8a2d\u5b9a --&gt;\n&lt;Executor name=\"tomcatThreadPool\"\n          namePrefix=\"catalina-exec-\"\n          maxThreads=\"300\"\n          minSpareThreads=\"25\"\n          maxQueueSize=\"100\"\/&gt;<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- web.xml\u3067\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u5236\u5fa1 --&gt;\n&lt;filter&gt;\n    &lt;filter-name&gt;ExpiresFilter&lt;\/filter-name&gt;\n    &lt;filter-class&gt;org.apache.catalina.filters.ExpiresFilter&lt;\/filter-class&gt;\n    &lt;init-param&gt;\n        &lt;param-name&gt;ExpiresByType image&lt;\/param-name&gt;\n        &lt;param-value&gt;access plus 1 week&lt;\/param-value&gt;\n    &lt;\/init-param&gt;\n&lt;\/filter&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-51\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u30de\u30c8\u30ea\u30c3\u30af\u30b9<\/h4>\n\n\n<div id=\"id-58135708-8259-475a-a926-e60b328d0189\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e1\u30c8\u30ea\u30af\u30b9<\/th><th>\u8b66\u544a\u95be\u5024<\/th><th>\u5371\u967a\u95be\u5024<\/th><th>\u5bfe\u51e6\u65b9\u6cd5<\/th><\/tr><\/thead><tbody><tr><td>CPU\u4f7f\u7528\u7387<\/td><td>70%<\/td><td>90%<\/td><td>\u30b9\u30ec\u30c3\u30c9\u6570\u8abf\u6574\u30fb\u51e6\u7406\u306e\u6700\u9069\u5316<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea\u4f7f\u7528\u7387<\/td><td>80%<\/td><td>95%<\/td><td>\u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u8abf\u6574\u30fb\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u8abf\u67fb<\/td><\/tr><tr><td>\u30ec\u30b9\u30dd\u30f3\u30b9\u6642\u9593<\/td><td>3\u79d2<\/td><td>5\u79d2<\/td><td>\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u8abf\u6574\u30fb\u30af\u30a8\u30ea\u6700\u9069\u5316<\/td><\/tr><tr><td>\u30a8\u30e9\u30fc\u30ec\u30fc\u30c8<\/td><td>1%<\/td><td>5%<\/td><td>\u30ed\u30b0\u5206\u6790\u30fb\u30a8\u30e9\u30fc\u539f\u56e0\u306e\u7279\u5b9a<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u3053\u308c\u3089\u306e\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u624b\u9806\u3068\u5bfe\u7b56\u306f\u3001\u30b7\u30b9\u30c6\u30e0\u306e\u5b89\u5b9a\u904b\u7528\u306e\u305f\u3081\u306e\u57fa\u672c\u3068\u306a\u308a\u307e\u3059\u3002\u5b9a\u671f\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u4e88\u9632\u7684\u306a\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u591a\u304f\u306e\u554f\u984c\u3092\u672a\u7136\u306b\u9632\u3050\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-52\">\u904b\u7528\u74b0\u5883\u3067\u306e\u6ce8\u610f\u70b9\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-53\">\u672c\u756a\u74b0\u5883\u3067\u306e\u63a8\u5968\u8a2d\u5b9a<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-54\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316\u8a2d\u5b9a<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7ba1\u7406\u30c4\u30fc\u30eb\u306e\u4fdd\u8b77<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- tomcat-users.xml\u3067\u306e\u7ba1\u7406\u8005\u30a2\u30ab\u30a6\u30f3\u30c8\u8a2d\u5b9a --&gt;\n&lt;tomcat-users&gt;\n    &lt;role rolename=\"manager-gui\"\/&gt;\n    &lt;role rolename=\"manager-script\"\/&gt;\n    &lt;user username=\"admin\" \n          password=\"[\u5f37\u529b\u306a\u30d1\u30b9\u30ef\u30fc\u30c9]\" \n          roles=\"manager-gui,manager-script\"\/&gt;\n&lt;\/tomcat-users&gt;<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d8\u30c3\u30c0\u30fc\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- web.xml\u3067\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d8\u30c3\u30c0\u30fc\u8a2d\u5b9a --&gt;\n&lt;filter&gt;\n    &lt;filter-name&gt;httpHeaderSecurity&lt;\/filter-name&gt;\n    &lt;filter-class&gt;org.apache.catalina.filters.HttpHeaderSecurityFilter&lt;\/filter-class&gt;\n    &lt;init-param&gt;\n        &lt;param-name&gt;hstsEnabled&lt;\/param-name&gt;\n        &lt;param-value&gt;true&lt;\/param-value&gt;\n    &lt;\/init-param&gt;\n    &lt;init-param&gt;\n        &lt;param-name&gt;hstsMaxAgeSeconds&lt;\/param-name&gt;\n        &lt;param-value&gt;31536000&lt;\/param-value&gt;\n    &lt;\/init-param&gt;\n&lt;\/filter&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-55\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u8a2d\u5b9a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- server.xml\u3067\u306e\u6700\u9069\u5316\u8a2d\u5b9a --&gt;\n&lt;Connector port=\"8080\" protocol=\"org.apache.coyote.http11.Http11NioProtocol\"\n           maxThreads=\"400\"\n           minSpareThreads=\"50\"\n           maxConnections=\"10000\"\n           acceptCount=\"500\"\n           connectionTimeout=\"20000\"\n           compression=\"on\"\n           compressionMinSize=\"2048\"\n           noCompressionUserAgents=\"gozilla, traviata\"\n           compressableMimeType=\"text\/html,text\/xml,text\/plain,text\/css,text\/javascript,application\/javascript,application\/json\"\n           URIEncoding=\"UTF-8\"\/&gt;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-56\">\u52b9\u7387\u7684\u306a\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30d5\u30ed\u30fc<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-57\">CI\/CD\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u69cb\u7bc9<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Jenkins Pipeline\u4f8b\npipeline {\n    agent any\n\n    environment {\n        TOMCAT_HOST = 'production-server'\n        TOMCAT_PORT = '8080'\n        DEPLOY_PATH = '\/myapp'\n    }\n\n    stages {\n        stage('Build') {\n            steps {\n                sh 'mvn clean package'\n            }\n        }\n\n        stage('Test') {\n            steps {\n                sh 'mvn test'\n            }\n        }\n\n        stage('Deploy') {\n            steps {\n                script {\n                    \/\/ Tomcat\u3078\u306e\u30c7\u30d7\u30ed\u30a4\n                    sh \"\"\"\n                        curl -v -u 'deploy:${DEPLOY_PASSWORD}' \\\n                            -T target\/myapp.war \\\n                            'http:\/\/${TOMCAT_HOST}:${TOMCAT_PORT}\/manager\/text\/deploy?path=${DEPLOY_PATH}&amp;update=true'\n                    \"\"\"\n                }\n            }\n        }\n\n        stage('Health Check') {\n            steps {\n                script {\n                    \/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5065\u5168\u6027\u78ba\u8a8d\n                    sh \"\"\"\n                        curl -f http:\/\/${TOMCAT_HOST}:${TOMCAT_PORT}${DEPLOY_PATH}\/health\n                    \"\"\"\n                }\n            }\n        }\n    }\n}<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-58\">\u30bc\u30ed\u30c0\u30a6\u30f3\u30bf\u30a4\u30e0\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u6226\u7565<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Blue-Green\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Nginx\u30ea\u30d0\u30fc\u30b9\u30d7\u30ed\u30ad\u30b7\u8a2d\u5b9a\nupstream tomcat_backend {\n    server blue.example.com:8080;  # Blue\u74b0\u5883\n    server green.example.com:8080 backup;  # Green\u74b0\u5883\n}\n\nserver {\n    listen 80;\n    server_name example.com;\n\n    location \/ {\n        proxy_pass http:\/\/tomcat_backend;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n    }\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30b9\u30af\u30ea\u30d7\u30c8<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n\n# \u73fe\u5728\u306e\u30a2\u30af\u30c6\u30a3\u30d6\u74b0\u5883\u3092\u78ba\u8a8d\nACTIVE_ENV=$(curl -s http:\/\/example.com\/env)\n\n# \u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u975e\u30a2\u30af\u30c6\u30a3\u30d6\u74b0\u5883\u306b\u30c7\u30d7\u30ed\u30a4\nif [ \"$ACTIVE_ENV\" = \"blue\" ]; then\n    TARGET_ENV=\"green\"\nelse\n    TARGET_ENV=\"blue\"\nfi\n\n# \u30c7\u30d7\u30ed\u30a4\u5b9f\u884c\ndeploy_to_environment() {\n    local env=$1\n    echo \"Deploying to $env environment...\"\n\n    # WAR\u30d5\u30a1\u30a4\u30eb\u306e\u30c7\u30d7\u30ed\u30a4\n    curl -v -u \"${DEPLOY_USER}:${DEPLOY_PASS}\" \\\n         -T target\/myapp.war \\\n         \"http:\/\/${env}.example.com:8080\/manager\/text\/deploy?path=\/myapp&amp;update=true\"\n\n    # \u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\n    for i in {1..10}; do\n        if curl -f \"http:\/\/${env}.example.com:8080\/myapp\/health\"; then\n            return 0\n        fi\n        sleep 5\n    done\n    return 1\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-59\">\u76e3\u8996\u3068\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u306e\u91cd\u8981\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-60\">\u76e3\u8996\u8a2d\u5b9a<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>JMX\u76e3\u8996\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># setenv.sh \u3067\u306e JMX\u8a2d\u5b9a\nCATALINA_OPTS=\"$CATALINA_OPTS -Dcom.sun.management.jmxremote\"\nCATALINA_OPTS=\"$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=9999\"\nCATALINA_OPTS=\"$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false\"\nCATALINA_OPTS=\"$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true\"\nCATALINA_OPTS=\"$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE\/conf\/jmxremote.password\"\nCATALINA_OPTS=\"$CATALINA_OPTS -Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE\/conf\/jmxremote.access\"<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Prometheus\u30a8\u30af\u30b9\u30dd\u30fc\u30bf\u30fc\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!-- pom.xml\u3067\u306e\u8a2d\u5b9a --&gt;\n&lt;dependency&gt;\n    &lt;groupId&gt;io.prometheus&lt;\/groupId&gt;\n    &lt;artifactId&gt;simpleclient_hotspot&lt;\/artifactId&gt;\n    &lt;version&gt;0.16.0&lt;\/version&gt;\n&lt;\/dependency&gt;<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-61\">\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u30b9\u30b1\u30b8\u30e5\u30fc\u30eb<\/h4>\n\n\n<div id=\"id-ecf6d57c-86b5-409b-b866-b661ef690c9b\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30bf\u30b9\u30af<\/th><th>\u983b\u5ea6<\/th><th>\u5185\u5bb9<\/th><th>\u91cd\u8981\u5ea6<\/th><\/tr><\/thead><tbody><tr><td>\u30ed\u30b0\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3<\/td><td>\u65e5\u6b21<\/td><td>\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u306e\u5727\u7e2e\u30fb\u30a2\u30fc\u30ab\u30a4\u30d6<\/td><td>\u9ad8<\/td><\/tr><tr><td>\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/td><td>\u65e5\u6b21\/\u9031\u6b21<\/td><td>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u30fb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/td><td>\u6700\u9ad8<\/td><\/tr><tr><td>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5206\u6790<\/td><td>\u9031\u6b21<\/td><td>\u30ea\u30bd\u30fc\u30b9\u4f7f\u7528\u72b6\u6cc1\u306e\u78ba\u8a8d\u3068\u6700\u9069\u5316<\/td><td>\u4e2d<\/td><\/tr><tr><td>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8<\/td><td>\u6708\u6b21<\/td><td>\u30d1\u30c3\u30c1\u9069\u7528\u30fb\u8106\u5f31\u6027\u5bfe\u5fdc<\/td><td>\u9ad8<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-62\">\u76e3\u8996\u30e1\u30c8\u30ea\u30af\u30b9<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u57fa\u672c\u30e1\u30c8\u30ea\u30af\u30b9<\/strong>\n<ul class=\"wp-block-list\">\n<li>CPU\u4f7f\u7528\u7387<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u7387<\/li>\n\n\n\n<li>\u30b9\u30ec\u30c3\u30c9\u30d7\u30fc\u30eb\u72b6\u614b<\/li>\n\n\n\n<li>\u63a5\u7d9a\u6570<\/li>\n\n\n\n<li>\u30ec\u30b9\u30dd\u30f3\u30b9\u30bf\u30a4\u30e0<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30e1\u30c8\u30ea\u30af\u30b9<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30a2\u30af\u30c6\u30a3\u30d6\u30bb\u30c3\u30b7\u30e7\u30f3\u6570<\/li>\n\n\n\n<li>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u6570<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u30ec\u30fc\u30c8<\/li>\n\n\n\n<li>GC\u983b\u5ea6\u3068\u6642\u9593<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u904b\u7528\u7ba1\u7406\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u3092\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u5b89\u5b9a\u3057\u305fTomcat\u74b0\u5883\u3092\u7dad\u6301\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u7279\u306b\u3001\u672c\u756a\u74b0\u5883\u3067\u306f\u4ee5\u4e0b\u306e\u70b9\u306b\u6ce8\u610f\u3092\u6255\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<p class=\"is-style-sango-paragraph-memo-alt\"><strong>\u672c\u756a\u74b0\u5883\u3067\u306e\u6ce8\u610f\u70b9<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b9a\u671f\u7684\u306a\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3068\u5fa9\u65e7\u624b\u9806\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306e\u9069\u7528<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u30a4\u30f3\u30b7\u30c7\u30f3\u30c8\u5bfe\u5fdc\u624b\u9806\u306e\u6574\u5099\u3068\u8a13\u7df4<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-63\">\u307e\u3068\u3081\uff1aApache Tomcat\u9023\u643a\u306e\u5b9f\u8df5\u306b\u5411\u3051\u3066<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-64\">\u91cd\u8981\u30dd\u30a4\u30f3\u30c8\u306e\u7dcf\u62ec<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u57fa\u76e4\u69cb\u7bc9\u306e\u30dd\u30a4\u30f3\u30c8<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u9069\u5207\u306a\u74b0\u5883\u8a2d\u5b9a\u3068\u8981\u4ef6\u306e\u628a\u63e1<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u8003\u616e\u3057\u305f\u69cb\u6210<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u610f\u8b58\u3057\u305f\u8a2d\u5b9a<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5b9f\u88c5\u6642\u306e\u91cd\u8981\u4e8b\u9805<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u9069\u3057\u305f\u9023\u643a\u30d1\u30bf\u30fc\u30f3\u306e\u9078\u629e<\/li>\n\n\n\n<li>\u52b9\u7387\u7684\u306a\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30d5\u30ed\u30fc\u306e\u78ba\u7acb<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u30ed\u30b0\u7ba1\u7406\u3068\u76e3\u8996\u4f53\u5236\u306e\u69cb\u7bc9<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-65\">\u74b0\u5883\u5225\u306e\u63a8\u5968\u69cb\u6210\u4e00\u89a7<\/h3>\n\n\n<div id=\"id-291cbc42-db81-4e21-b480-e754f5e1a643\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u74b0\u5883<\/th><th>\u63a8\u5968\u8a2d\u5b9a<\/th><th>\u91cd\u70b9\u9805\u76ee<\/th><th>\u6ce8\u610f\u70b9<\/th><\/tr><\/thead><tbody><tr><td>\u958b\u767a<\/td><td>\u958b\u767a\u8005\u5411\u3051\u67d4\u8edf\u306a\u8a2d\u5b9a<\/td><td>\u30c7\u30d0\u30c3\u30b0\u6a5f\u80fd\u306e\u6d3b\u7528<\/td><td>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u7de9\u548c\u306b\u6ce8\u610f<\/td><\/tr><tr><td>\u30c6\u30b9\u30c8<\/td><td>\u672c\u756a\u76f8\u5f53\u306e\u69cb\u6210<\/td><td>\u6027\u80fd\u691c\u8a3c\u74b0\u5883\u306e\u6574\u5099<\/td><td>\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u306e\u7ba1\u7406<\/td><\/tr><tr><td>\u672c\u756a<\/td><td>\u5805\u7262\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a<\/td><td>\u5b89\u5b9a\u6027\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/td><td>\u5b9a\u671f\u7684\u306a\u76e3\u8996\u3068\u4fdd\u5b88<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-66\">\u4eca\u5f8c\u306e\u767a\u5c55\u306b\u5411\u3051\u3066<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7d99\u7d9a\u7684\u306a\u6539\u5584\u306e\u30dd\u30a4\u30f3\u30c8<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8<\/li>\n\n\n\n<li>\u65b0\u3057\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u3078\u306e\u5bfe\u5fdc<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u63a8\u5968\u3055\u308c\u308b\u5b66\u7fd2\u30ed\u30fc\u30c9\u30de\u30c3\u30d7<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u57fa\u672c\u7684\u306aTomcat\u8a2d\u5b9a\u306e\u7406\u89e3<\/li>\n\n\n\n<li>\u5404\u7a2e\u9023\u643a\u30d1\u30bf\u30fc\u30f3\u306e\u5b9f\u8df5<\/li>\n\n\n\n<li>\u904b\u7528\u7ba1\u7406\u30b9\u30ad\u30eb\u306e\u5411\u4e0a<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-67\">\u6700\u5f8c\u306b<\/h3>\n\n\n\n<p>Apache Tomcat\u306e\u9023\u643a\u306f\u3001\u9069\u5207\u306a\u8a08\u753b\u3068\u5b9f\u88c5\u306b\u3088\u308a\u3001\u5b89\u5b9a\u3057\u305f\u904b\u7528\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002\u672c\u8a18\u4e8b\u3067\u89e3\u8aac\u3057\u305f\u5185\u5bb9\u3092\u57fa\u306b\u3001\u4ee5\u4e0b\u306e\u70b9\u306b\u6ce8\u610f\u3057\u3066\u5b9f\u88c5\u3092\u9032\u3081\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u8981\u4ef6\u306b\u5408\u308f\u305b\u305f\u9069\u5207\u306a\u9023\u643a\u30d1\u30bf\u30fc\u30f3\u306e\u9078\u629e<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u30d0\u30e9\u30f3\u30b9\u3092\u8003\u616e\u3057\u305f\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u52b9\u679c\u7684\u306a\u76e3\u8996\u4f53\u5236\u3068\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u8a08\u753b\u306e\u78ba\u7acb<\/li>\n<\/ul>\n\n\n\n<p>\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306e\u77e5\u8b58\u3092\u6df1\u3081\u3001\u5b9a\u671f\u7684\u306a\u8a2d\u5b9a\u306e\u898b\u76f4\u3057\u3092\u884c\u3046\u3053\u3068\u3067\u3001\u3088\u308a\u5b89\u5b9a\u3057\u305f\u30b7\u30b9\u30c6\u30e0\u904b\u7528\u3092\u5b9f\u73fe\u3067\u304d\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-68\">\u53c2\u8003\u30ea\u30f3\u30af<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/tomcat.apache.org\/docs\/\">Apache Tomcat\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/spring.io\/guides\">Spring Framework\u516c\u5f0f\u30ac\u30a4\u30c9<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/jakarta.ee\/specifications\/\">Java EE\/Jakarta EE\u4ed5\u69d8<\/a><\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30ea\u30bd\u30fc\u30b9\u3092\u6d3b\u7528\u3057\u306a\u304c\u3089\u3001\u5b9f\u8df5\u7684\u306aTomcat\u74b0\u5883\u306e\u69cb\u7bc9\u3068\u904b\u7528\u3092\u9032\u3081\u3066\u3044\u304f\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-739","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-uncategorized","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=739"}],"version-history":[{"count":4,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/739\/revisions"}],"predecessor-version":[{"id":3491,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/739\/revisions\/3491"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=739"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=739"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}