nginx怎么配置http心跳检测
时间: 2023-05-23 16:02:09 浏览: 886
nginx依赖及心跳检查包
要配置 http 心跳检测,可以在 nginx 的配置文件中添加下面这些指令:
```
http {
...
server {
...
location / {
...
# 配置 http 心跳检测
# 设置最大等待时间为 10 秒,最多尝试 2 次连接
# 如果超时或连接失败,nginx 将会从上游服务器删除这个服务器
# 并且在 5 秒后再次尝试
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_connect_timeout 5s;
proxy_read_timeout 10s;
proxy_send_timeout 10s;
# 设置 http 心跳检测
# 每隔 10 秒发送一个 GET 请求
# 如果返回状态码为 200,认为上游服务器可用
# 如果上游服务器连续 2 次不可用,删除该服务器
# 并且在 5 秒后再次尝试
# 注意需要在 upstream 块中定义 server 段
# 同时需要指定有效的协议和端口号
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_pass http://backend;
proxy_cache_bypass $http_pragma;
proxy_cache_revalidate on;
# 启用代理缓存
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_valid 200 304 10m;
proxy_cache_valid 404 1m;
}
}
}
```
其中,`proxy_next_upstream` 用于指定当上游服务器返回 502、504、错误、超时或无效头部时,nginx 应该如何处理;`proxy_connect_timeout`、`proxy_read_timeout` 和 `proxy_send_timeout` 用于配置连接、读取和发送超时时间;`proxy_cache_path`、`proxy_cache_key` 和 `proxy_cache_valid` 用于配置代理缓存。
注意,这里的 `backend` 是一个 upstream 段,需要先在 nginx 配置文件中定义:
```
upstream backend {
server server1.example.com:8080;
server server2.example.com:8080;
}
```
只有定义了 upstream,才能在 location 段中使用 `proxy_pass` 指令将请求转发到上游服务器。
阅读全文