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はストアドプロシージャを使用して数百万のデータを素早く追加します。サンプルコード

序文インデックスを追加した場合と追加しなかった場合の違いを反映するには、数百万のデータを使用する必要...

Mysql での結合操作

結合の種類1. 内部結合: 結合関係を持つ 2 つのテーブル内のフィールドは、結合関係を満たすレコー...

MySQL <> および <=> 演算子の紹介

<> 演算子機能: 等しくないことを示します。注: 「!=」演算子と同じ機能を持ちますが...

MySQL 5.7 で my.ini ファイルが見つからない場合の解決策

my.ini とは何ですか? my.ini は、MySQL データベースで使用される設定ファイルです...

Linuxサービスの監視と運用および保守

目次1. psutilパッケージをインストールする次に、オペレーティングシステム内のすべてのサービス...

MySQL での coalesce() の使用に関するヒントのまとめ

序文最近、偶然 MySQL の coalesce を発見しました。ちょうど時間があったので、MySQ...

Ubuntu 16.04 カーネルのアップグレード手順

1. 環境仮想マシン上で実行されているUbuntu 16.04では、コマンドuname -rを使用し...

CocosCreator MVCアーキテクチャの詳細な説明

概要この記事では、ゲームクライアントでよく使用される MVC アーキテクチャについて紹介します。ゲー...

Linuxで環境変数を削除する詳細な手順

Linuxで環境変数を削除するには?unsetコマンドを使用してすぐに削除します1. Linuxクラ...

Linux で at および cron スケジュールタスクをカスタマイズする方法

Linux システムには 2 種類のスケジュールされたタスクがあります。1 つは 1 回だけ実行され...

Javascript で SessionStorage と LocalStorage を使用する方法

目次序文SessionStorage と LocalStorage の紹介SessionStorag...

Ubuntu 向け VMware Tools のインストールと構成のチュートリアル

以前、ブロガーは VMware 仮想マシンに Ubuntu システムをインストールしました。まだイン...

js を使用して数字推測ゲームを実装する

先週、先生が私に数字当てゲームをするちょっとした宿題を出しました。とても面白いと思ったので、適当に書...

MySQL ページング制限の実用的な最適化

序文クエリ ステートメントを使用する場合、多くの場合、データの最初の数行または中間行を返す必要があり...

MySQL データベースにおける高同時実行性の問題を解決する方法

序文スタートアップ企業が最初はモノリシック アプリケーションを主要なアーキテクチャとして使用し、通常...