用个案例动态获取当前端口号
@RestController
@CrossOrigin
public class PortController {
@Value("${server.port}")
private Integer port;
@GetMapping("/getPort")
public String getPort(){
return "当前端口号"+port;
}
}
同时启动三台服务器
更改端口号,同时启动三台服务器
更改nginx-1.21.4\conf\nginx.conf配置
轮询策略
#定义tomcat服务器集群
upstream tomcats {
server localhost:8091;
server localhost:8092;
server localhost:8093;
}
#配置后端服务器代理 manage.jt.com localhost:8091
server {
listen 80;
server_name manage.jt.com;
location / {
#代理请求协议
#proxy_pass http://localhost:8091;
proxy_pass http://tomcats;
}
}
权重
#定义tomcat服务器集群
upstream tomcats {
server localhost:8091 weight=6;
server localhost:8092 weight=3;
server localhost:8093 weight=1;
}
IPhash
说明: 如果需要用户与tomcat服务器进行绑定. 可以选用 iphash策略
策略: 有时会将用户的数据,存储到后端服务器的Session中.并且保证每次用户访问都访问同一个tomcat服务器.
#定义tomcat服务器集群
upstream tomcats {
ip_hash;
server localhost:8091 weight=6;
server localhost:8092 weight=3;
server localhost:8093 weight=1;
}
Nginx高可用实现
关键字
1.down 属性 用来标识tomcat服务器. 告知nginx 该服务器已经下线. 以后不会访问该服务器
2.backup属性 设定备用机. 正常情况下 不会主动提供服务. 当服务器遇忙时/或者主机全部下线时,才起作用
tomcat高可用实现
1.max_fails=1 指定最大的失败的次数 规定最大的失败次数1
2.fail_timeout=60s; 如果失败的次数达到最大失败次数60s内, nginx不会再次访问故障机.
#定义tomcat服务器集群
upstream tomcats {
#ip_hash; weight=6
server localhost:8091 max_fails=1 fail_timeout=60s;
server localhost:8092 max_fails=1 fail_timeout=60s;
server localhost:8093 max_fails=1 fail_timeout=60s;
}