Springboot プロジェクトをサーバーにデプロイする方法としては、war パッケージにパッケージ化して Tomcat にデプロイするか、jar パッケージにパッケージ化して組み込みの簡単に実行できるパッケージを直接使用する方法が一般的です。現在では、war パッケージにパッケージ化して Tomcat にデプロイする人が多くなっています。この方法も問題ありませんが、その後のメンテナンスが面倒になります。公式の説明によると、jar のデプロイが最善の方法ですが、これにより別の問題が発生します。複数の spring-boot プロジェクトが同時にデプロイされ、ポートが異なる場合、ドメイン名でそれらにアクセスするにはどうすればよいでしょうか。次に、Nginx が必要です。Nginx は、高性能な HTTP およびリバース プロキシ サーバーであり、IMAP/POP3/SMTP サーバーでもあります。これはSpringbootのデプロイに非常に適しています。Nginxのインストールはここではチュートリアルではありません。nginx.confの主な設定は次のとおりです。 サンプル1; サーバー{ 聞く 80; サーバー名 127.0.0.1; access_log ログ/book.log; error_log ログ/book.error; # /wx-service リクエストを http://127.0.0.1:8011/wx-service に転送して処理場所 /wx-service { proxy_set_header ホスト $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; プロキシパス http://127.0.0.1:8011/wx-service; } # /bootdo リクエストを http://127.0.0.1:8012/bootdo に転送して処理場所 /bootdo { proxy_set_header ホスト $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; プロキシパス http://127.0.0.1:8012/bootdo; } # /xcloud-service リクエストを http://127.0.0.1:8013/xcloud-api に転送して処理場所 /xcloud-service { proxy_set_header ホスト $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; プロキシパス http://127.0.0.1:8013/xcloud-api; } # /eureka-service リクエストを http://127.0.0.1:8081/eureka-service に転送して処理場所 /eureka-service { proxy_pass http://127.0.0.1:8081/eureka-service; #ここでポートを対応するプロジェクトに変更することを忘れないでください proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; } # /xcloud-api リクエストを http://127.0.0.1:8082/xcloud-api に転送して処理場所 /xcloud-api { proxy_pass http://127.0.0.1:8082/xcloud-api; #ここでポートを対応するプロジェクトに変更することを忘れないでください proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; } } 例2: サーバー{ 聞く 80; server_name ローカルホスト; #文字セット koi8-r; #access_log ログ/host.access.log メイン; 位置 / { ルートhtml; インデックス index.html index.htm index.php; } # /wvv リクエストを http://127.0.0.1:1992/wvv に転送して処理場所 /wvv { proxy_set_header ホスト $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; プロキシパス http://127.0.0.1:1992/wvv; } } 複数のSpringBootプロジェクトをデプロイする場合は、異なるパスに変更する限り、次の構成を複数回追加できます。 # /wvv リクエストを http://127.0.0.1:1991/project に転送して処理します 場所 /プロジェクト{ proxy_set_header ホスト $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; プロキシパス http://127.0.0.1:1991/project; } nginx のポートを 80 に変更すると、直接アクセスできるようになります。ドメイン名は localhost にすることができます。これはローカル localtion/XXX を表します。これは nginx ポート転送を構成するためのものです。必要な数のプロジェクトを構成できます。ここで tomcat のプロジェクトを構成することもできます。上記の構成に従って、sbin ディレクトリで ./nginx -s reload を実行して nginx 構成を更新すると、有効になります。 これはテスト済みで効果的なSpring-Bootクイック再起動シェルスクリプトです。 JAVA_HOME=/usr/local/java/jdk1.8.0_162 をエクスポートします。 PATH=$JAVA_HOME/bin:$PATH をエクスポートします エクスポート CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ポート=8081 JarName=clouddo-server.jar LogsPatch=./logs_$ポート ID=`ps -ef | grep $Port | grep -v "grep" | awk '{print $2}'` $IDをエコーする エコー "--------------" $IDのID する キル -s 9 $id echo "$id を強制終了しました" 終わり エコー "--------------" rm -rf $ログパッチ mkdir $LogsPatch エクスポートLANG=zh_CN.UTF-8 -m を設定する nohup java -jar -Dlogging.path=$LogsPatch $JarName>$LogsPatch/catlina.out 2>&1 & tail -f $LogsPatch/catlina.out xx.shという名前を付けて保存します。 nginx の下にプロジェクト名を冠した別のフォルダを作成し、そこに jar パッケージを配置してから、jar パッケージを起動することをお勧めします。 Springbootプロジェクトは設定ファイルで設定する必要があることに注意してください。
Spring Boot のデフォルト設定は / なので、http://ip:port/ からインデックス ページに直接アクセスできます。ただし、nginx を介して複数のプロジェクトを構成する場合は、プロジェクトごとに context-path を個別に指定する必要があります。 個人の好みに応じてサーバーディレクトリに新しいフォルダを作成し、spring-bootによってパッケージ化されたjarと次のような再起動スクリプトを保存します。 これにより、起動スクリプトが無視された後に生成されるログ フォルダーである logs ディレクトリの管理が容易になります。1 つのプロジェクトは、プロジェクト jar と再起動シェル スクリプトを含むフォルダーに対応します。 この方法では、複数のSpringbootプロジェクトを同時にバックグラウンドで起動し、ドメイン名を介してこれらのプロジェクトにアクセスできます。ログをリアルタイムで表示したい場合は、各プロジェクトファイルのlogsディレクトリに移動して、以下を実行してください。 tail -f catlina.out で確認できます。不備がありましたらご指摘いただければ幸いです。ご容赦ください。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Workermanはmysql接続プールのサンプルコードを書きます
>>: MySQL 8.0.19 インストールチュートリアル
目次1. はじめに1. コンポーネントデータ2. コンポーネントページのレイアウト1. ロゴエリアの...
目次1. 新しいII. 変更element-ui は、Ele.me のフロントエンド チームが開発者...
私は通常、Tomcatや他のアプリケーションのリバースプロキシとしてnginxを使用しています。実際...
JS には、文字列をインターセプトするための 3 つのメソッド、 slice() 、 substri...
<br />関連記事: Web コンテンツ ページ作成に関する 9 つの実用的な提案、W...
この記事では、JavaScriptにおけるアロー関数と通常の関数の違いについて解説します。具体的な内...
OO、デザイン パターン、および多くのオブジェクト指向の原則について話す前に、まず 1 つのことを習...
時は経つのが早く、わずか 6 日後には 2013 年が歴史になります。今年は、いわゆるトレンドが多す...
目次1. ステートメントを挿入する1.1 行を挿入する1.2 複数行を挿入する1.3 クエリステート...
1. MySQL 8.0.16を解凍する次の図に示すように、解凍後にdadaフォルダとmy.ini構...
目次MySQLマスタースレーブの基本原理3つのbinlog形式の比較混合形式のバイナリログが存在する...
負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...
mysql が誤ってデータを削除しました削除ステートメントを使用して誤ってデータ行を削除する誤ってデ...
データベース内のテーブルのフィールドとプロパティをエクスポートし、テーブルを作成してWordに保存す...