入門Nginxの-負荷等化(SpringBoot)
4504 ワード
概要
1つのSpringBootバックエンドサービスを採用し、異なるポートで起動し、複数のサービスをシミュレートし、ここでは2つを例に説明する.オペレーティングシステム:Windows 7 最初のステップは多くのサービスを準備し、起動します.コード 起動 先に梱包:
第2ステップNginxでの負荷分散構成の完了 Nginxプロファイルをnginxで編集する.confファイルに追加する である.
第3ステップ負荷分散の検証
確認する前に、 This is Server: 8000 This is Server: 9000
Notes:発生する可能性のある問題
しかし、nginx-tテストの結果、バックエンドのサービスログでエラーが発生しました.原因分析:nginxのupstreamの後ろの名前に下線を含めることはできません.Nginxプロファイルの属性名と競合します(eg:server_name). 解決策:下線を削除するか、-に置き換えます.
これにより,NginxとSpringBootに基づいて負荷等化を実現した.
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!
1つのSpringBootバックエンドサービスを採用し、異なるポートで起動し、複数のサービスをシミュレートし、ここでは2つを例に説明する.
package com.nginx.loadbalance.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* LoadBalanceController
*/
@RestController
public class LoadBalanceController {
@Value("${server.port}")
private String port;
@GetMapping("/api/v1/serve")
public String serve() {
return "This is Server: " + port;
}
}
mvn clean package
;そして2つのサービスを開始します.java -jar loadbalance-0.0.1-SNAPSHOT.jar --server.port=8000
java -jar loadbalance-0.0.1-SNAPSHOT.jar --server.port=9000
第2ステップNginxでの負荷分散構成の完了
upstream
server
ノードは以下の通り(Linuxは一般的にvi /etc/nginx/nginx.conf
によって修正される) upstream api-server {
server 127.0.0.1:8000;
server 127.0.0.1:9000;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://api-server;
proxy_redirect default;
}
}
第3ステップ負荷分散の検証
確認する前に、
nginx -s reload
を使用してNginx構成をリフレッシュしてください.http://localhost/api/v1/serve
にアクセスし、ページに表示される情報を観察し、2つのサービス間でデフォルトの配布方法で配布されます.Notes:発生する可能性のある問題
, “HTTP Status 400 – Bad Request”,
upstream api_server {
server 127.0.0.1:8000;
server 127.0.0.1:9000;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://api_server;
proxy_redirect default;
}
}
しかし、nginx-tテストの結果、バックエンドのサービスログでエラーが発生しました.
これにより,NginxとSpringBootに基づいて負荷等化を実現した.
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!