[alibaba/tengine]Tengine健康检查如何检查后端的ws

2024-07-12 513 views
1

check interval=3000 rise=2 fall=5 timeout=1000 type=http; check_http_send "HEAD / HTTP/1.1\r\n\r\n"; check_http_expect_alive http_2xx http_3xx; 这样是检查后端的http,如果要检查后端的ws应该如何实现呢?

回答

2

@chobits 理论上如果ngx_http_upstream_check_module支持 http_1xx应该就能满足判断ws的需求了吧。


check_http_send "GET / HTTP/1.1\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==\r\n\r\n"; 

check_http_expect_alive http_1xx;```
0

感谢你的回答 然而我尝试了您的配法,显示如下错误

nginx: [warn] invalid value "http_1xx" in /opt/nginx/conf/nginx.conf:82
8

@xll970211 因为现在暂时不支持http_1xx

0

感谢您的回答,不支持http_1xx是不是就意味着目前还不能tengine健康检查不支持ws呢?但是我看阿里云上的SLB是可以支持ws的。是还有什么其他的方法吗? @mrpre

2

暂时解决了这个问题,做一个记录,因为我的ws协议中,也包含了一些其他的http请求,所以我去健康检查http请求,算是绕过了去检查ws,如果以后能有其他方法实现,再来补充。

heck interval=3000 rise=2 fall=5 timeout=1000 type=http ;
check_http_send "GET /URI HTTP/1.0\r\n\r\n";
check_http_expect_alive  http_2xx http_3xx;