1、负载均衡配置
# 与代理服务器建立连接的超时时间,默认60,不超过75
proxy_connect_timeout 5s;
# 从代理服务器读取响应的超时
proxy_read_timeout 10s;
# 向代理服务器发起请求的超时
proxy_send_timeout 10s;
# 指定在何种情况下,应该将请求转给下一个服务器,error与服务器建立连接、发起请求或读取响应出错,timeout与服务器建立连接、发起请求或读取响应超时
proxy_next_upstream error timeout;
# 重试的最大超时时间,表示在timeout里边允许tries次重试
proxy_next_upstream_timeout 10s;
#设置重试次数,默认为0表示不限制,这里的重试次数表示所有请求次数,包括第一次和之后的重试次数
proxy_next_upstream_tries 1;
upstream upstream_test {
# 通过IP哈希的方式进行负载均衡,同一个客户端IP将被分配到同一个服务器,默认不配置则表示round-robin,根据权重轮询
# ip_hash;
# weight 表示权重
# fail_timeout内失败了max_fails次,则表示该服务不可用,fail_timeout重新尝试是否可用
server 127.0.0.1:1577 weight=1 fail_timeout=10 max_fails=5;
}
2、健康检查
前提是安装了https://github.com/yaoweibin/nginx_upstream_check_module模块
upstream upstream_test {
# type 协议类型
# interval检测间隔,这里1秒一次,
# fall失败多少次之后标识为不存活
# rise成功多少次后标识为存活
# timeout检查超时时间
check type=http interval=1000 fall=5 rise=3 timeout=3000;
# http检测是发送的请求
check_http_send "GET / HTTP/1.0\r\n\r\n";
# 检测接口期待的结果,匹配则认为存活
check_http_expect_alive http_2xx http_3xx http_4xx;
}
3、全局开启gzip压缩
http {
# gzip压缩
gzip on;
# 设置最小压缩长度,大于1K才启用压缩
gzip_min_length 1k;
# 设置压缩所需要的缓冲区大小
gzip_buffers 16 16k;
#压缩等级 1-9 等级越高,压缩效果越好,节约宽带,但CPU消耗大
gzip_comp_level 2;
gzip_http_version 1.1;
# 哪些类型进行压缩
gzip_types text/plain application/x-javascript text/css application/javascript application/json application/xml image/jpeg image/gif image/png font/ttf font/opentype font/x-woff image/svg+xml;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
# 禁用IE 6 gzip,因为IE6的某些版本对gzip的压缩支持很不好,会造成页面的假死
gzip_disable "MSIE [1-6]\.";
# 对所有的代理请求启用压缩
gzip_proxied any;
}