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 ホームページの再設計

推薦する

ECMAscript の新機能の紹介

目次1. 関数パラメータのデフォルト値1.1 関数パラメータのデフォルト値の指定1.2 分離割り当て...

Tomcat プロセスの CPU 使用率が高い場合の解決策

目次場合コンテキスト切り替えのオーバーヘッド?要約するCPU は多くの場合、システム パフォーマンス...

MySQLをシンプルに学ぶ

序文データベースは常に私の弱点でした。自分の経験 (python+sqlalchemy) を組み合わ...

ゲームの Node.JS バージョンを作成する方法

目次概要ビルドプロセス関連APIリードライン基本的な使い方チョーククリア手順に関する追加情報完全なコ...

nginx サーバーでの 502 不正なゲートウェイ エラーの原因のトラブルシューティング

パブリックアカウントのファンデータを同期してバッチプッシュするときに、サーバーがエラー502を報告し...

MySQL 8.0 の新機能 - 管理ポートの使用の概要

目次序文接続管理追加の接続管理ポート要約する序文皆さんの多くは、次のようなエラー メッセージに遭遇し...

MySQL で指定エンコーディングを実装する際の落とし穴について

前面に書かれた環境: MySQL 5.7+、MySQL データベースの文字エンコードは utf8、テ...

MySQL バッチ挿入ループの詳細なサンプルコード

背景数日前、MySql でページングを行っていたときに、ページングに制限 0,10 を使用するとデー...

jQuery ベースのカレンダー効果

この記事では、カレンダー効果を実現するためのjQueryの具体的なコードを例として紹介します。具体的...

ウェブページの読み込み速度を上げる簡単なヒント

Web ページの読み込み速度は、Web サイトの品質を評価するための重要な指標です。その理由は、ほと...

Dockerコンテナのディスクがいっぱいになった場合の状況のまとめ

序文この記事では、最近私が遭遇した 2 つの状況について説明します。今後、新たな発見があれば追加して...

MySQLで一意のサーバーIDを生成する方法

序文MySQL では、server-id を使用してデータベース インスタンスを一意に識別し、それを...

Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。

序文Dockerを使ってHadoopクラスタを起動するたびに、ネットワークカードの再バインド、IPの...

MySQL の日付フォーマットと複雑な日付範囲クエリ

目次序文クエリの使用シナリオ例時間間隔クエリクエリ日付と今日の時間の比較データ一般的なサイクルタイム...

Linux ネットワークプログラミングにおけるソケットオプションの実装

ソケットオプション機能機能: ソケットファイル記述子の属性の読み取りと設定に使用されるメソッド #i...