You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Go Fiber WebSocket应用时出现426 Upgrade Required错误

问题分析与解决方案

为什么会出现426 Upgrade Required错误

你复制的那个/ws中间件作用很明确:它检查当前请求是否包含WebSocket协议升级所需的HTTP头(Upgrade: websocket和Connection: Upgrade),只有符合条件的请求才会被放行到后续的WebSocket处理逻辑,否则直接返回426错误。

部署到服务器后报错,核心原因是Nginx没有正确转发WebSocket升级请求的关键头信息,导致后端Fiber服务无法识别这是一个合法的WebSocket升级请求,从而触发了中间件的错误返回。

修正Nginx配置

需要在Nginx的代理配置中添加WebSocket专用的转发规则,确保升级头被正确传递给后端服务。修改后的配置如下:

server {
    listen 443 ssl;
    server_name myserver.com;
    server_tokens off;
    client_max_body_size 60M;

    ssl_certificate ...;
    ssl_certificate_key ...;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass  http://rest-api:9000;
        proxy_set_header    Host                $http_host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        
        # 添加WebSocket代理必备配置
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
        proxy_read_timeout 86400; # 延长超时时间,避免长连接被过早断开
    }
}

如果你希望单独对/ws路径做更精细的控制,也可以单独配置一个location块:

location /ws/ {
    proxy_pass http://rest-api:9000;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    # WebSocket代理必备配置
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
    proxy_read_timeout 86400;
}

后续操作与调试要点

  1. 重启Nginx生效配置:执行sudo nginx -s reload让修改后的配置生效
  2. 客户端连接方式:因为服务器启用了SSL,客户端必须使用wss://api.myserver.com/ws/comments进行连接(使用ws://会触发浏览器混合内容拦截,无法正常连接)
  3. 调试请求头:可以通过浏览器开发者工具的Network面板,查看WebSocket请求的Request Headers,确认Upgrade和Connection头是否存在且正确;同时查看Response Headers和状态码,验证是否正常升级

内容的提问来源于stack exchange,提问作者Andrew Rusinas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 13:31:02