????????????????Nginx - linux?集群部署(负载)与跨域支持
- upstream 上游服务(集群模块),只配制1台服务器就只有反向代理的作用
- proxy_pass 代理地址,对应的是upstream名称
#-----------------------------------------------------------------------------------------------------
#集群配置
upstream tomcats {
server 192.168.1.1:7080 max_conns=2;
server 192.168.1.1:8080 max_conns=2;
}
server {
listen 97;
server_name localhost;
#开启跨域支持
include cros.conf;
location / {
proxy_pass http://tomcats;
}
}
#------------------------------------------------------------------------------------------------------
- 默认负载为轮询,weight设置权重,权重默认为1,例如:weight=1;
- max_conns 服务最大连接数,起到限流(保护服务,保险丝的作用),使用共享内存,每一个work process都能够使用
- slow_start slow_start=time需要weight支持,会覆盖权重(weight)在指定时间内,会缓缓的升级由0升级到设置的值,不适用于单个服务(高版本或者商业版可用)?????
upstream tomcats {
server 192.168.1.173:8080 weight=6 slow_start=60s;
server 192.168.1.174:8080 weight=2;
server 192.168.1.175:8080 weight=2;
}
upstream tomcats {
server 192.168.1.173:8080 down;
server 192.168.1.174:8080 weight=1;
server 192.168.1.175:8080 weight=1;
}
- backup 标记为服务为备用,只有其他服务宕机后才会启用
upstream tomcats {
server 192.168.1.173:8080 backup;
server 192.168.1.174:8080 weight=1;
server 192.168.1.175:8080 weight=1;
}
- max_fails: 出错多少次,标记为宕机,不会在使用,默认值1
- fail_timeout: max_fails达到宕机次数,fail_timeout设置时间保护,过了保护时间再访问,默认10秒
upstream tomcats {
server 192.168.1.173:8080 max_fails=2 fail_timeout=15s;
server 192.168.1.174:8080;
server 192.168.1.175:8080;
}
- ?keepalive 建立长连接数量,提升吞吐量;不使用则默认每次请求会创建新的连接,使用后直接关闭
- location配置:
- proxy_http_version 1.1;
- proxy_set_header Connection "";
upstream tomcats {
server 192.168.1.190:8080;
keepalive 32;
}
server {
listen 97;
server_name localhost;
location / {
proxy_pass http://tomcats;
# 配合 keepalive 开启,提升吞吐量,用于优化
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
- ip hash 通过对请求的ip采用算法计算,分配到固定的服务器的一种负载方式
- hash算法一致性减少服务器:如果有请求正在访问hash算法分配的服务器宕机了,会将他们分配至下一个服务器服务,其他新的请求会遵循原来的hash算法分配服务器
- hash算法一致性增加服务器:当前请求不变,添加服务器后,hash位置就近的请求下一次请求时会重新计算,重新分配服务器
upstream tomcats {
#开启 ip算法分配
ip_hash;
server 192.168.1.173:8080;
server 192.168.1.174:8080;
server 192.168.1.175:8080;
}
- url hash??通过对请求的url采用算法计算,分配到固定的服务器的一种负载方式
upstream tomcats {
# url hash $request_uri nginx提供的默认参数
hash $request_uri;
server 192.168.1.173:8080;
server 192.168.1.174:8080;
server 192.168.1.175:8080;
}
- ?least_conn 最小连接数分配,当前服务器使用中,使用时连接数最小的会被优先分配
upstream tomcats {
# 最少连接数
least_conn
server 192.168.1.173:8080;
server 192.168.1.174:8080;
server 192.168.1.175:8080;
}
#允许跨域请求的域,*代表所有
add_header 'Access-Control-Allow-Origin' *;
#允许带上cookie请求
add_header 'Access-Control-Allow-Credentials' 'true';
#允许请求的方法,比如 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#允许请求的header
add_header 'Access-Control-Allow-Headers' *;
集群模块化官方文档
|