Nginx给minio做代理转发 进入管理界面查看桶一直显示loading问题

前段时间解析出了个子域名给minio用,结果nginx转发后打开管理页面的桶一直在白屏加载,给整郁闷了。今天有时间研究了一番,解决了问题

查看桶发起的是 websocket 请求,在 nginx配置 上加上websocket支持就好

# 添加了websocket支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header        Host  $http_host;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

改完重启或者reload nginx一下

需要注意的是,这样修改可能会导致一些其他问题,所以这里需要做一些处理

map $http_upgrade $connection_upgrade {
        default upgrade;
        ''   close;
    }

这段配置的作用是根据客户端的请求头中是否包含升级请求头来设置 $connection_upgrade 变量的值。如果客户端请求升级连接,$connection_upgrade 将被设置为 “upgrade”,允许连接升级到其他协议。如果没有升级请求头或不需要升级,$connection_upgrade 将被设置为 “close”,表示连接将被关闭。

这种配置常用于处理 WebSocket 连接等需要升级 HTTP 连接的场景,它允许 Nginx 在不同的连接状态下采取不同的行动,以确保连接按预期工作。

一小时后。。。 nm香港转也给拦住了。。。。 刚配置连接通wb连接。。。 可能是检测到了wb连接,这个minio服务器在国内买的,肯定有各种监测的。。。。