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

Pynecone自托管WebSocket连接失败及pcconfig配置咨询

问题解决与配置说明

一、WebSocket连接失败的原因与修复

你的WebSocket连接失败主要有两个核心问题:

  1. pcconfig.py协议不匹配
    前端请求使用的是wss://(WebSocket over HTTPS),但你的api_url设置为http://,协议不一致导致连接被拒绝。

    修正后的pcconfig.py配置:

    config = pc.Config(
        app_name="myapp",
        api_url="https://myhost:8100",  # 改为HTTPS协议,与wss请求对应
        bun_path="$HOME/.bun/bin/bun",
        db_url="sqlite:///pynecone.db",
    )
    
  2. Nginx未配置WebSocket转发规则
    Nginx默认不会处理WebSocket的升级请求,需在server块中添加专门的转发配置:

    server {
        listen 443 ssl;
        server_name myhost;
    
        # 替换为你的SSL证书路径
        ssl_certificate /path/to/your/cert.pem;
        ssl_certificate_key /path/to/your/key.pem;
    
        # 转发前端静态文件请求
        location / {
            proxy_pass http://localhost:3000;  # Pynecone前端静态服务默认端口为3000
            proxy_set_header Host $host;
        }
    
        # 处理WebSocket及API请求
        location /event/ {
            proxy_pass http://localhost:8100;  # Pynecone后端服务地址
            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;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    

    注意:根据实际部署情况替换localhost:8100和localhost:3000为你的服务真实地址,确保SSL证书配置有效。

二、pcconfig.py字段详细说明

  • app_name:应用的唯一标识符,Pynecone用它生成静态文件目录、部署资源命名,名称需避免特殊字符。
  • api_url:前端连接后端API与WebSocket的地址,必须和用户访问的协议(HTTP/HTTPS)完全一致,否则会出现跨域或协议不兼容问题。
  • bun_path:指定Bun的安装路径,Pynecone依赖Bun处理前端构建、打包与热重载,需确保路径指向有效的Bun可执行文件。
  • db_url:数据库连接字符串,示例中为SQLite本地数据库格式,若使用PostgreSQL等其他数据库,需替换为对应连接格式。

内容的提问来源于stack exchange,提问作者Wine Drink

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:37:15