现象:
nginx端日志:
查看grafana日志:
grafana网页打开后,由于websocket请求没成功,会一直尝试,刷新非常频繁。
前端可以看到如下报错:
可以看到,grafana是通过WebSocket(WSS)来请求的,而我们配置的nginx只做了http转发。
解决方案:
在Nginx里在 server 的外层添加:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
新增location来配置WebSocket(WSS)代理:
location /api/live/ws {
proxy_pass http://your-grafana:3000/api/live/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
配置完成后,nginx重启或nginx -s reload生效。
再查看grafana前端,可以看到websocket连接建立成功。
值得说明的是,上述是做了一次nginx转发,如果做了多次nginx转发,则每一层nginx都要配置WebSocket(WSS)转发。