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

Swift Vapor WebSocket在Ubuntu 22.04上无法运行的排查求助

Ubuntu 22.04 部署服务器WebSocket连接中断问题排查方案

可能的因素及对应解决方法

1. 防火墙/安全组端口未开放

  • 检查Ubuntu本地防火墙ufw状态,确认WebSocket使用的端口(如自定义的8080、默认的80/443)是否允许入站:
    sudo ufw status
    sudo ufw allow <你的WebSocket端口>
    sudo ufw reload
    
  • 若为云服务器,登录云服务商控制台检查安全组规则,确保对应端口的入站流量权限已开启。

2. 服务器监听地址错误

  • 本地运行时应用可能仅绑定127.0.0.1(仅本地可访问),部署时需修改配置为0.0.0.0,让服务器监听所有网卡的请求。检查应用的启动配置或配置文件,确认监听地址设置正确。

3. Nginx代理缺少WebSocket支持配置

  • 若通过Nginx代理WebSocket请求,必须添加协议升级相关配置,示例如下:
    location /<你的WebSocket路由路径> {
        proxy_pass http://localhost:<应用端口>;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    
  • 修改配置后重启Nginx生效:
    sudo systemctl restart nginx
    

4. Postman连接配置有误

  • 确认请求URL格式正确:使用ws://<服务器IP>:<端口>/路由路径(未加密)或wss://<域名/IP>:<端口>/路由路径(加密)。
  • 检查Postman是否开启了全局代理,代理可能干扰WebSocket连接,尝试关闭代理后重新测试。

5. 应用层拦截或配置问题

  • 检查应用的WebSocket路由是否正确,是否存在鉴权、跨域等中间件误拦截了连接请求。
  • 查看服务器应用的日志文件,提取连接中断时的具体报错信息,定位问题根源。

6. SSL/TLS配置问题(使用WSS时)

  • 若使用加密WebSocket(WSS),确认Nginx的SSL证书配置有效,自签名证书需在Postman中手动添加信任。
  • 确认后端应用是否直接处理SSL,还是由Nginx代理层处理SSL,避免双重SSL配置冲突。

内容的提问来源于stack exchange,提问作者Artemiy Ziuzin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:32:14