events {} #必写
http{
#Tomcat服务器集群
#weight权重配置,当有五个请求发过来的时候,100服务器处理3个,101处理两个
#max_fails 配置的是熔断机制失败次数,即当访问一个服务器的时候,出现三次失败,就发生熔断
#fail_timeout 熔断时间,当服务器熔断超过10s后,nginx会重新尝试连接熔断的服务器
#设置max_fails=0可以更方便的测试Nginx错误重试机制。max_fails默认值是1,用于指定一个server在一段时间内(默认10s)发生错误次数达到多少次,Nginx就会自动将该服务器下线。这里设置为0是禁用这个特性,防止在测试过程中服务器被踢下线不好测试。线上环境下一般不会设置max_fails=0。
upstream tomcat_servers {
server 192.168.1.100:8081 weight=3 max_fails=3 fail_timeout=10s;
server 192.168.1.101:8081 weight=2 max_fails=3 fail_timeout=10s;
}
server {#虚拟机服务器,端口默认80
#nginx每个服务请求超时时间,当超过这个时间服务器还没处理完,就会发生故障转移,去请求别的服务器。
#故障转移:当一个服务器处理请求超过这个时间,就会将请求发送到别的服务器去处理,get请求发生故障转移会导致数据的幂等性问题,
#通常情况下,如果请求使用非等幂方法(POST、LOCK、PATCH),请求失败后不会再到其他服务器进行重试。加上non_idempotent选项后,即使是非幂等请求类型(例如POST请求),发生错误后也会重试。
proxy_read_timeout 3s;
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 error timeout non_idempotent;
#这个是发生故障转移时的重试次数,当发生故障转移时,如果配置了1000台服务器,不可能让他轮训都重试一遍,所以当重试3次后,直接告诉客户端,这个请求错误。
proxy_next_upstream_tries 3;
#这个参数是重试的最长时间,重试时间超过这个时间也会直接返回
proxy_next_upstream_timeout 60s;
location /{#根据用户的url 走不同的流程。 通配
#将代理请求返回的内容作为响应
proxy_set_header Host $http_host;
proxy_pass http://tomcat_servers;
}
#静态不变的由nginx直接返回,静态内容和nginx放在同一台服务器上
location~ \.(gif|jpg|png|css|js|html)$ {
root /data/www;
}
}
}
nginx的配置
最新推荐文章于 2024-06-14 10:43:44 发布