版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/83545935
集群会产生哪些问题
- 分布式job幂等性问题(重复),例如任务调度
- 会话session共享问题
- 分布式生成全局id(提前生成好,存在redis)
反向代理
不暴露真实ip地址
先配置反向代理,再配置负载均衡(集群)
www.fangwen.com已经在host文件修改为127.0.0.1必须加分号
server {
listen 80;
server_name www.fangwen.com;
location / {
proxy_pass http://127.0.0.1:8081;
index index.html index.htm;
}
负载均衡
实现集群根据权重[,轮训机制机器相同],ip绑定
解决:高吞吐量
1.轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
添加到配置文件中,与server并列(下面一样)
upstream backserver {
server 192.168.0.14:8080;
server 192.168.0.15:8081;
}
2.指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3.IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
可以解决session共享的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
集群宕机容错机制
1.nginx服务器没宕机
- nginx配置,集群宕机,自动轮询到下一台服务器
server {
listen 80;
server_name www.fangwen.com;
location / {
proxy_pass http://backserver;
index index.html index.htm;
proxy_connect_timeout 1;
proxy_send_timeout 1;
proxy_read_timeout 1;
}
}
session存放在redis中以防失效
- 一主多备
2.nginx服务器可能宕机
- 多主多备