tomcat+nginx を使用してマルチアプリケーション デプロイメントを実装するためのサンプル コード

tomcat+nginx を使用してマルチアプリケーション デプロイメントを実装するためのサンプル コード

マルチアプリケーションの展開

1-Tomcat 構成

1.1- プロジェクト構成

まず、 tomcatディレクトリに移動し、2 番目のアプリケーションを展開するためのwebappsフォルダーをコピーします。

cp ウェブアプリ ウェブアプリ1 

ここに画像の説明を挿入

この時点で、通常のプロジェクトをデプロイするのと同じ方法で 2 番目のプロジェクトをデプロイし、データ パッケージをwebapps1ファイルにアップロードできます。

1.2-サービス構成

tomcatサービス構成ファイルに移動し、 server.xml構成ファイルを開いて、2 番目のアプリケーション デプロイメントに関連する構成情報を入力します。

cd confvim server.xml

ここに画像の説明を挿入

ファイルの最後に、サービス解決構成を追加します。

<!-- 2 番目のプロジェクト構成 -->
<サービス名="Catalina1">
    
  <!-- 競合を避けるには、ポートを変更してください -->
  <コネクタ ポート="81" プロトコル="HTTP/1.1"
             接続タイムアウト = "20000"
             リダイレクトポート="8443" />

  <!-- Tomcat はデフォルトでポート 8009 を使用します。競合を避けるには、ポート 8009 を変更します -->
  <コネクタ ポート="8010" プロトコル="AJP/1.3" リダイレクト ポート="8443"/>
	
  <!-- エンジン ノード、名前が Catalina1 に変更されました -->
  <!-- サービスが開始されると、対応するエンジン フォルダーが conf の下に生成され、名前は同じままになります。 -->
  <エンジン名="Catalina1" defaultHost="localhost">
    <レルムクラス名="org.apache.catalina.realm.LockOutRealm">
      <レルムクラス名="org.apache.catalina.realm.UserDatabaseRealm"
             リソース名="ユーザーデータベース"/>
    </レルム>

    <!-- ホスト ノードを変更し、appBase を公開するファイルの場所 (最初の手順でコピーした webapps1) に変更します -->
    <ホスト名="localhost" appBase="webapps1"
          unpackWARs="true" autoDeploy="true">

      <Valve クラス名="org.apache.catalina.valves.AccessLogValve" ディレクトリ="logs"
             プレフィックス="localhost_access_log" サフィックス=".txt"
             パターン="%h %l %u %t &quot;%r&quot; %s %b" />

    </ホスト>
  </エンジン>
</サービス>

2-Nginx の設定

まず、 Nginxサービス ディレクトリの下のconf構成ファイルに移動し、 nginx.conf構成ファイルを見つけて編集します。

vim nginx.conf 

ここに画像の説明を挿入

http{}内にリバース プロキシ構成情報を追加します。

# ウェブサイトは単なるランダムな名前であり、単なる識別情報であり、プロキシする必要がある対応する IP:ポートがその中に含まれています。
# 複数のサービスを直接入力することもできます。nginx はアップストリームのウェブサイトを自動的に読み込みます{
                サーバー localhost:81;
                サーバー localhost:82;
        }

        サーバ{
                聞く 80;
                # 解決する必要があるドメイン名情報を設定し、このドメイン名が現在のサーバーの server_name www.123.com にアクセスできることを確認します。
                位置 / {
                		# 上記で定義したオブジェクトを proxy_pass http://website の下に配置します。
                        proxy_set_header ホスト $http_host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
        }

3-展開を完了する

上記の 2 つの手順を完了したら、 tomcatNginxを再起動すると、ドメイン名を介して 2 つのアプリケーションに個別にアクセスできるようになります。

# binディレクトリに入り、Tomcatを再起動します
./シャットダウン.sh
./スタートアップ.sh
# sbinディレクトリに入り、nginxを再起動します
./nginx -s リロード

tomcat+nginx を使用したマルチアプリケーション デプロイメントを実装するためのサンプル コードに関するこの記事はこれで終了です。tomcat+nginx を使用したマルチアプリケーション デプロイメントの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker ベースの Tomcat クラスタと Nginx ロード バランシングの展開の概要
  • Nginx+Tomcat マルチサイト展開方法
  • Nginx + Tomcat リバースプロキシが 1 つのサーバーに複数のサイトを効率的に展開する方法の詳細な説明
  • 詳細な Nginx + Tomcat リバース プロキシ ロード バランシング クラスターの展開ガイド

<<:  CSS3アニメーションとHTML5の新機能の詳しい説明

>>:  無効と読み取り専用の機能と違い

推薦する

Unicodeの一般的な記号

Unicode は、世界中のすべてのテキストと記号に対応できる国際組織によって開発された文字エンコー...

Docker で LNMP 環境を素早く構築する方法 (最新)

序文ヒント: ここで、この記事に記録するおおよその内容を追加できます。例えば、人工知能の継続的な発展...

この構成ファイルの排他ロックに失敗したという VMware 仮想マシンのプロンプトの解決方法

VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...

Nginx+Keepalived でデュアルマシン マスターとバックアップを実装する方法

序文まず、高性能サーバーの高可用性またはホットスタンバイソリューションである Keepalived ...

MySQL 接続で認証失敗エラーが発生する場合の分析と解決方法

[問題の説明]アプリケーション側では、次のエラーが時々表示されます。メソッド 'mysql_...

MySQLのインデックスシステムがB+ツリーを使用する理由の分析

目次1. インデックスとは何ですか? 2. インデックスはなぜ必要なのでしょうか? 3. インデック...

CSSスタイルの記述順序と命名規則と注意事項

書き順の重要性ブラウザのリフローを減らし、ブラウザのDOMレンダリングパフォーマンスを向上させる①:...

MySQL カーソル関数と使用法

目次意味カーソルの役割カーソルの使用カーソルの宣言カーソルを開くカーソルデータのトラバースカーソルを...

Vue3 スロットの使用状況の概要

目次1. Vスロットの紹介2. 匿名スロット3. 名前付きスロット4. スコープ付きスロット5. 動...

vscodeを使用してuniappを開発する方法

私はフロントエンド プロジェクトの開発に常に vscode を使用してきたため、現在ではいくつかの小...

MySQL 5.7 のインストールと設定の詳細な手順

1. MySQLをダウンロードする1. MySQLの公式ウェブサイトにログインし、64ビットシステム...

テキストエリアのテキストをHTMLに変換する方法、つまり復帰改行について

説明: テキストエリアの値の改行を新しい行に変更しますコードをコピーコードは次のとおりです。 <...

CSS 経由で JS にパラメータを渡す方法

1. CSSを通す必要がある背景CSS におけるメディアクエリの用途は、デバイスサイズの判別、マウス...

jQueryチェーン呼び出しの詳細な説明

目次チェーン呼び出し小さなケースチェーン呼び出しjQuery オブジェクトが任意のメソッド (ノード...

フォームのmethod=post/getの違い

フォームは、get と post の 2 つのデータ転送方法を提供します。どちらもデータを送信する方...