Tomcat が設定ファイルを外部に配置するためのソリューション

Tomcat が設定ファイルを外部に配置するためのソリューション

質問

通常の開発では、プロジェクトを Tomcat にデプロイする場合、プロジェクトを war パッケージにパッケージ化し、その war パッケージを Tomcat の webapps ディレクトリに配置してから、プロジェクトを起動するのが一般的な方法です。

ただし、プロジェクトを本番環境にデプロイする場合、本番環境の設定ファイルはローカル開発環境の設定ファイルと異なるのが一般的です。この場合、先ほど説明した方法でプロジェクトを本番環境にデプロイするのは面倒です。手動で元の設定ファイルを削除するか、パッケージ化時に設定ファイルを除外してから、正しい設定ファイルをプロジェクトのリソース ディレクトリにコピーする必要があります。

では、もっと簡単な方法はあるのでしょうか?

回避策

設定ファイルを /var/config などのサーバー上の固定の場所に置くことができます。その後、これらの設定ファイルを Tomcat にインポートします。
具体的な手順は次のとおりです。

  • Tomcatのルートディレクトリに入る

  • confディレクトリに入り、Catalinaフォルダを作成します
  • Catalinaディレクトリに入り、localhostというフォルダを作成します。
  • ローカルホストディレクトリに移動し、appContext.xmlファイルを作成します。

特記事項: ここでの appContext はプロジェクトのコンテキストです。これを独自のプロジェクト コンテキスト名に変更する必要があります (例: taobao.xml)。

appContext.xmlに次のように記入します

<コンテキスト パス ="/appContext" docBase ="/home/tools/apps/appContext.war"
        デバッグ ="0" 特権 ="true" リロード可能 ="true" >
        <パラメータ名="" 値="/home/tools/config" override="false"/>
</コンテキスト>

パス: プロジェクトのコンテキストを入力します。docBase: war パッケージのパスを入力します。値: プロジェクト構成ファイルのパスを入力します。

Tomcatディレクトリに戻り、binディレクトリに入り、setenv.shファイルを変更します。

CLASSPATH=$CLASSPATH:/home/tools/config

このファイルが存在しない場合は、作成して実行権限を設定します。

  • 基本的に設定は完了しているので、設定ファイルを対応するディレクトリに配置し、war パッケージを対応するディレクトリに配置して、Tomcat を起動します。

私の設定ファイルは /home/tools/config ディレクトリに対応しており、war パッケージ ディレクトリは /home/tools/apps/appContext.war です。これらの 2 つのパスは、必要に応じて変更できます。

最後に、ちょっとした知識をシェアします。Tomcatはメモリサイズを設定します

Tomcat の bin ディレクトリで catalina.sh ファイルを開き、公式コードの最初の行に次の行を追加します: JAVA_OPTS="-server -Xms128m -Xmx256m -XX:PermSize=64M -XX:MaxPermSize=128m"
特定のメモリサイズはニーズに応じて設定する必要があります

要約する

Tomcat 設定ファイルの外部配置に関するこの記事はこれで終わりです。Tomcat 設定ファイルの外部配置に関する詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Spring Boot で組み込み Tomcat の maxPostSize 値を設定する方法
  • アイデアで外部Tomcatを使用してSpringbootを構成するための詳細な手順
  • Tomcat で JNDI データ ソースを構成する 3 つの方法
  • Tomcat のメモリ構成の正しい姿勢についての簡単な説明
  • Tomcatユーザー管理の最適化された構成の詳細な説明

<<:  最初のReactページを作成する方法

>>:  Web 標準アプリケーション: Tencent QQ ホームページの再設計

推薦する

MySQL 5.7 でルートパスワードを変更する方法に関するチュートリアル

バージョンアップデートにより、元のユーザーのパスワードフィールドがauthentication_st...

HTML タイトル属性をラップする方法

数日前にプログラムを書いていたとき、プロンプト情報 (TITLE) を新しい行で囲みたいと思いました...

Vue ドラッグ アンド ドロップのシンプルな実装

この記事では、主に次のような Vue ドラッグ アンド ドロップの簡単な実装を紹介します。レンダリン...

Vue の基本的な手順の例のグラフィック説明

目次1. v-on指令1. 基本的な使い方2. 糖衣構文3. イベントパラメータ4. イベント修飾子...

Nginx レイヤー 4 負荷分散構成ガイド

1. レイヤー4負荷分散の概要レイヤー 4 ロード バランシングとは何ですか?いわゆる 4 層負荷分...

MySQLクエリ時にフィールドにデフォルト値を割り当てる方法

必要フィールドをクエリする場合、フィールドに同じ値を指定する必要があります。この値はハードコードする...

Vue の双方向イベントバインディング v-model の原理についての簡単な説明

目次説明する:要約する補充するDOM を直接変更して操作する js や jQuery とは異なり、V...

HTML 特殊文字エンコーディング CSS3 コンテンツに関する簡単な説明:「私は特別なシンボルです」

プロジェクトで使用されている特殊文字とアイコンHTMLコードXML/HTML コードコンテンツをクリ...

透明な入力ボックスにアイコンを追加する HTML コード

最近、弁護士推薦のウェブサイトを作成していたのですが、検索ボックスに問題がありました。検索ボックス内...

Ubuntu Dockerのインストールと使い方

目次1. 公式インストールスクリプトを使用した自動インストール手動インストール古いバージョンをアンイ...

良いリファクタリングを行うには、コードをリファクタリングするだけでなく、人生をリファクタリングすることも重要です。

職業的な観点からも、人生の観点からも、良い再建をすることは本当に簡単ではありません。楽観的で熱心で前...

iostat を使用して Linux ハードディスクの IO パフォーマンスを表示する方法

TOP 観察: IO 待機に占められる CPU 時間の割合。30% を超えると、IO の負荷が高くな...

H5 WeChatパブリックアカウント認証を実装するための簡単な手順

序文昨日、h5 WeChat認証の実装が必要なプロジェクトがありました。したがって、この機能を完了す...