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 インストールチュートリアル
コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...
問題の説明nginx を設定することで、異なるポートを介して異なる Web アプリケーションにアクセ...
実際のプロジェクトでは、上下のスクロール バーと左右のスクロール バーは DIV 内にないため、右の...
1. はじめに最近、あるプロジェクトに取り組んでいたのですが、サーバーからクライアントに返される J...
開発中、優れたユーザー インターフェイスには常にいくつかのアニメーションが組み込まれます。 CSS ...
Linuxにunzipコマンドがない問題の解決策unzipコマンドを使用して.zipファイルを解凍す...
この記事では、効率を向上させ、時間を節約することを願って、最も効果的な 6 つの方法を紹介します。 ...
準備1. マスターとスレーブのデータベースのバージョンは一致している必要があります2. マスターデー...
目次1 Dockerをインストールする2 国内ミラーソースの設定3 中国語環境基本版Centos7イ...
序文ウェブサイトのアクセス元をカウントしたい場合は、PHP を使用して情報を取得してデータベースに記...
1. 角を丸くする今日の Web デザインは、常に最新の開発テクノロジーに追随しており、HTML5 ...
たった15行のCSSでiPhoneがクラッシュするWire のセキュリティ研究者 Sabri Had...
CSS 疑似要素を使用して要素を制御する場合、一部の要素のスタイルを変更する必要があることがよくあり...
最近Bステーションでスマートアンチブロッキング弾幕と呼ばれる弾幕エフェクトを見ました。これは伝説のマ...
目次1. コマンド2. docker-compose.yml 3. Dockerファイル4. 直接変...