環境準備
項目 JDK1.8 以上版本
準備好 nginx 環境
nginx 配置
nginx 的配置文件在/usr/local/nginx/conf 目錄下,配置文件 nginx.conf
配置信息如下:
upstream web_app {
server 192.168.226.150:8089 max_fails=2 fail_timeout=30s;
}
upstream web_app:定義一個名稱,隨意取名
server + ip:端口 or 域名
在虛擬主機添加如下配置
# 虛擬主機配置
server {
listen 80;
server_name localhost;
location / {
#root html; #定義服務器的默認根目錄位置
#index index.html index.htm;
#反向代理的配置
#如果後端的服務器返回502,504,執行超時等錯誤,自動將請求轉發到upstream負載均衡中的一台服務器
#實現故障轉移
proxy_next_upstream http_502 http_504 error timeout invalid_header;
#將代理服務器收到的用戶的信息傳到真實服務器上
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 與上面配置的轉發的名稱一致
proxy_pass http://web_app;
}
說明:
server:虛擬主機的名稱,一個 HTTP 中可以配置多個 server;
listen:nginx 默認的端口
server_name:nginx 服務的地址, 可以使用域名,多個用空格分隔
proxy_pass :代理路徑,一般配置 upstream 後面的名稱用於實現負載均衡可以直接配置 ip 進行跳轉
nginx.conf 簡單的完整配置:
events {
worker_connections 1024;
}
error_log nginx-error.log info;
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web_app{
server 192.168.226.150:8089 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name 127.0.0.1;
location / {
root html;
proxy_pass http://web_app;
proxy_connect_timeout 3s;
proxy_read_timeout 5s;
proxy_send_timeout 3s;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
負載均衡測試
完成上面的 Nginx 配置之後,重啟啟動 Nginx
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
微服務啟動:
[root@pertest bin]# sh server.sh restart
訪問接口,通過 nginx 的 ip:端口 + 接口後綴地址
通過 nginx 的日誌,也可以看到訪問成功了
當有多個節點的時候,在 nginx 配置文件裏面加上對應的 ip:端口就可以了。
本文作者:檸檬班軟件測試(lemonban)——專註於最新最前沿的軟件測試技術,解決你的測試技術煩惱,對軟件測試感興趣的朋友趕快關注我們吧!