浏览 1.7k
nginx使用第三方模块主动检测模块后,被动检测还生效吗?
http {
# 关闭socket错误日志
lua_socket_log_errors off;
# 上游服务器组样例
upstream test {
server 127.0.0.1:12354 max_fails=2 fail_timeout=30s;
server 127.0.0.1:12355 max_fails=2 fail_timeout=30s;
}
lua_shared_dict _foo_zone 1m;
init_worker_by_lua_block {
local hc = require "resty.upstream.healthcheck"
local ok, err = hc.spawn_checker{
shm = "_foo_zone",
upstream = "foo.com",
type = "http",
http_req = "GET /status HTTP/1.0\r\nHost: foo.com\r\n\r\n",
interval = 2000,
timeout = 1000,
fall = 3,
rise = 2,
valid_statuses = {200, 302},
concurrency = 10,
}
if not ok then
ngx.log(ngx.ERR, "failed to spawn health checker: ", err)
return
end
}
location /test {
proxy_pass http://test;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 600;
proxy_buffer_size 256k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m;
}
按点赞数排序
按时间排序
从我目前的上游节点宕机验证验证结果分析,主动检测和被动检测共同作用,在上游节点已经宕机的情况下,进入nginx的流量依旧会转发给上游宕机节点,配合proxy_next_upstream进行流量的next操作
原文作者:7759349htww
原文链接:https://www.nginx.org.cn/question/detail/6549
转载来源:NGINX开源社区
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
0
回答于2023-07-02 18:26
微信公众号
加入微信群