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の新機能の詳しい説明

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

推薦する

タブ効果を実現する js 開発プラグイン

この記事の例では、タブ効果を実現するためのjsプラグインの具体的なコードを参考までに共有しています。...

Centos7 に mysql 8.0.13 (rpm) をインストールする詳細なチュートリアル

yum か rpm か? yum によるインストール方法は非常に便利ですが、公式サイトから MySQ...

Dockerコンテナのエクスポートとインポートの例

目次DockerコンテナのエクスポートDockerコンテナのインポ​​ートこの記事では主に、コンテナ...

Vue.set() と this.$set() の使い方と違い

開発に Vue を使用する場合、次のような状況に遭遇することがあります。Vue インスタンスを生成し...

MySQLデータベースをアンインストールするための完全な手順

MySQLデータベースを完全にアンインストールするプロセスは次のとおりです。 1. MySQLサービ...

MYSQLでリモートアクセス権限を有効にする方法

1. MySQLデータベースにログインするmysql -u ルート -pユーザーテーブルを表示する ...

Tomcatのクラスロードメカニズムのプロセスとソースコード分析

目次序文1. Tomcat クラスローダー構造図: 2. Tomcat のクラスロードプロセスの説明...

MySQL の int(n) の後の n はどういう意味ですか?

int(1) の長さ 1 は、許可されたストレージ幅を表していないことはすでにご存知かもしれません...

選択/フォーカス時にすべてのオプションをリストする現在のより良い方法

開発中にこのような要件に遭遇したので、将来使用するために記録しました。需要背景キーボード ショートカ...

Windows10 での MySQL msi インストール チュートリアル (画像とテキスト付き)

1. ダウンロード1. MySQL msi 公式 Web サイトから最新のダウンロードをクリックす...

反応自動構築ルーティングの実装

目次順序1. 集中ルーティング2. ファイルディレクトリ3. CompileRouterを作成する4...

Docker 学習: コンテナ コンテナの具体的な使用方法

コンテナは Docker のもう一つの中心的な概念です。簡単に言えば、コンテナとは、独立して実行され...

20個のJavaScriptワンラインコードを共有する

目次1. ブラウザのクッキーの値を取得する2. RGBを16進数に変換する3. クリップボードにコピ...

H5でクリックされたときにaタグの背景色をキャンセルする方法

1. モバイル端末でクリックされたときにタグの青色を解除する { -webkit-tap-highl...