首页 > 系统相关 >nginx代理minio的websocket问题,求解决!!!

nginx代理minio的websocket问题,求解决!!!

时间:2024-11-13 14:29:49浏览次数:1  
标签:set websocket minio header server nginx proxy timeout

1.问题描述

nginx代理minio集群,web控制台浏览buckets下的列表一直在loading...,

不使用nginx代理地址,通过minio集群直接访问是没有问题的

从报错来看是websocket连接失败问题,按照官方文档以及其他博主的方式都配置了,仍未解决!!!!!

 

 

2.minio镜像版本:

minio/minio:RELEASE.2024-11-07T00-52-20Z

3.nginx版本

1.20.2

4.nginx配置

[root@minio-1 conf]# cat conf.d/minio.conf 
# 定义 Web 服务器组(Web 端口,通常为 29000)
upstream minio_web_servers {
    server 172.16.8.78:9000 max_fails=3 fail_timeout=30s;
    server 172.16.8.79:9000 max_fails=3 fail_timeout=30s;
    server 172.16.8.80:9000 max_fails=3 fail_timeout=30s;
}

# 定义 API 服务器组(API 端口,通常为 29001)
upstream minio_api_servers {
    server 172.16.8.78:9001 max_fails=3 fail_timeout=30s;
    server 172.16.8.79:9001 max_fails=3 fail_timeout=30s;
    server 172.16.8.80:9001 max_fails=3 fail_timeout=30s;
}

server {
    listen 9900;  # Web 端口监听
    server_name 172.16.8.78;

    # Web 端代理到 MinIO 集群
    location / {
        proxy_pass http://minio_web_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 设置请求超时
        proxy_connect_timeout 10s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }

    # 配置 WebSocket 请求路径
    location /ws/ {  # 确保路径匹配 WebSocket 请求
        proxy_pass http://minio_web_servers;  # 将请求转发到后端 MinIO 集群
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket 特定头部设置
        proxy_http_version 1.1;  # 使用 HTTP/1.1 来支持 WebSocket
        proxy_set_header Upgrade $http_upgrade;  # WebSocket 升级请求头
        proxy_set_header Connection "upgrade";  # 连接升级头部

        # 设置超时
        proxy_connect_timeout 10s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

server {
    listen 9901;  # API 端口监听
    server_name 172.16.8.78;

    # API 端代理到 MinIO 集群
    location / {
        proxy_pass http://minio_api_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # WebSocket 特定头部设置
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        # 设置请求超时
        proxy_connect_timeout 10s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

 

标签:set,websocket,minio,header,server,nginx,proxy,timeout
From: https://www.cnblogs.com/Leonardo-li/p/18543873

相关文章

  • 使用Websocket构建小型的IM通讯程序
    目录目录使用PWA构建小型的IM通讯程序简介项目地址界面预览技术栈服务端支持的协议前端总结使用PWA构建小型的IM通讯程序简介使用Websocket、MQTT协议构建小型的IM通信程序,可用于物联网或及时通信等,通过PWA技术,安装到用户手机桌面,提高用户整体交互感。项目地......
  • Nginx的日志切割 logrotate 方式
    基本centos7系统已自带logrotate,其他系统并未测试新建nginx日志任务vi/etc/logrotate.d/nginx/usr/local/nginx/logs/access.log {dailyrotate7missingokdateextnocompressdelaycompressnotifemptysharedscriptspostrotate  [-e/usr/local/nginx/logs/ng......
  • 【nginx安全】Nginx日志安全分析脚本
    Nginx日志的重要性和必要性我们知道Nginx属于是程序日志的范畴,相对于系统日志来说层级要低一些了,但对于站长来说是至关重要的。因为Nginx日志里记录着站点来访的所有信息,无论是正常访客还是恶意请求都会在日志里留下痕迹,比如:被采集、恶意刷流量、暴力破解、漏洞扫描、恶意代......
  • [运维][Nginx]Nginx学习(1/5)--Nginx基础
    Nginx简介背景介绍Nginx一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔·赛索耶夫(俄罗斯人)使用C语言编写的,Nginx的第一个版本是2004年10月4号发布的0.1.0版本。另外值得一提的是伊戈尔·赛索耶夫将Nginx的源码......
  • WebSocket协议如何在实时行情接口中发挥作用?
    Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)股票量化,Python炒股,CSDN交流社区>>>WebSocket协议的基础概念定义与特性WebSocket协议是一种网络通信协议。它的特性在于能在单个TCP连接上进行全双工通信。与传统的HTTP协......
  • 使用Nginx反向代理解决http和https跨域问题
    使用Nginx作为反向代理来解决HTTP和HTTPS跨域问题,主要涉及到配置Nginx以添加CORS(跨源资源共享)相关的响应头。以下是具体的配置步骤和解释:通过上述配置,Nginx可以作为反向代理服务器,解决HTTP和HTTPS的跨域问题,同时确保通信的安全性和效率。配置CORS响应头:在Nginx的配置文件......
  • go websocket 服务 及 应用 nginx 的配置
    gowebsocket开启服务ws,wss服务5001对应的是ws,5000对应的是wssgofunc(){ iferr:=r.Run(fmt.Sprintf(":%d",c.WsPort));err!=nil{ global.Logger.Panic("启动失败ws:",err) }}()iferr:=r.RunTLS(fmt.Sprintf(":%d",c.WssPort......
  • 在Linux中使用Nginx和Docker进行项目部署
    前言随着云计算和微服务架构的发展,容器化技术如Docker变得越来越重要。本篇文章将向大家介绍如何在Linux操作系统中使用Nginx作为Web服务器,并结合Docker容器化技术来部署一个简单的Web应用。通过本文,你将学会基本的Linux命令、Nginx的安装与配置,以及如何使用Docker进行应用部......
  • SpringBoot:SpringBoot集成Minio+KkFileView实现所有文档格式预览功能
    前言博主做项目时,存储文件使用的是Minio,各类格式文件都有(图片,pdf,word,excel等等),因为项目需求这些文档能进行预览,全部交给前端实现需要各种组件支撑,这无疑会加大前端的开发量,所以博主在网上搜索大量解决方法,最终找到这种可以实现方案。具体的kkFileView的介绍和部署可以看我的另一......
  • 【Nginx学习】深入 Nginx:4大步骤揭秘 Nginx 请求的多阶段异步处理
    ......