pynecone self-hosting get websocket error



这是自托管的文档,实际上,从文档中,
我不太理解pcconfig.py中每个字段的含义。

是否有任何自托管的演示?还是有更完整的官方文件?

这是我的。

pcconfig.py

config = pc.Config(
app_name="myapp",
api_url="http://myhost:8100",
bun_path="$HOME/.bun/bin/bun",
db_url="sqlite:///pynecone.db",
)

我在我的网站上使用nginx。它得到错误信息。

WebSocket connection to 'wss://myhost:8100/event/?EIO=4&transport=websocket' failed

我不知道发生了什么,但是它就是不工作,
我不太清楚文件说了什么。

我的pcconfig.py有什么问题吗?你有什么建议吗?

谢谢。

在这里,我可以简单地分享一下我使用nginx自托管的经验。如果你想知道详细的信息,你可以阅读这个文章。

<标题>场景h1> 我的资源
  • 我只有一个IP地址为111.123.xxx.33.的主机(在我的实际情况中,我在linode上运行,它完全是linux)
  • 在主机上,可以完全运行pynecone项目。
  • 我的域名是mydomain.net
  • 我已经有我的SSL证书/xxx/xxx/fullchain/xxx/xxx/privkey.pem。(在我的实际情况中,我每3个月使用Let's Encrypt SSL并由Certbot管理)
  • 我可以为我的域名设置DNS。(在我的实际情况中,我使用router-53)
  • 主机中没有人使用端口37118701

我的目标对于一个松果项目,它将最终构建前端部分和后端部分。我希望实现以下目标:

  • 我只想在IP111.123.xxx.33的主机上运行前端和后端。
  • 用户可以从https://xxxxx-frontend.mydomain.net打开我的服务
  • 我希望pynecone的前端运行在端口3711
  • 我希望pynecone的后端运行端口8701

为了利用现有资源实现这一目标,我们有以下3个步骤来完成此任务。

1。DNS设置

我的主机IP是111.123.xxx.33
我可以在DNS上添加两个A记录。

  • xxxxx-frontend.mydomain.net111.123.xxx.33
  • xxxxx-backend.mydomain.net111.123.xxx.33

两个域具有相同的IP

2。Pynecone项目

pcconfig.py

import pynecone as pc
my_deploy_config = pc.Config(
app_name="myapp",
port=3711,
backend_port=8701,
api_url="https://xxxxx-backend.mydomain.net",
bun_path="$HOME/.bun/bin/bun",
db_url="sqlite:///pynecone.db",
env=pc.Env.PROD,
)
config = my_deploy_config

这个文件给出了以下信息:

  • 前端将服务于http://localhost:3711
  • 后端将服务于http://localhost:8701
  • 前端的源代码将与后端通信https://xxxxx-backend.mydomain.net

pc命令启动项目

pc init
  • pc运行

3。Nginx设置

/etc/nginx nginx.conf

插入以下内容以包含设置。

include /somepath/my-nginx-sites-enabled/*

/somepath/my-nginx-sites-enabled/xxxxx-backend.mydomain.net

server{
server_name xxxxx-backend.mydomain.net;
location / {
proxy_pass http://localhost:8701;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /xxx/xxx/fullchain.pem; # managed by Certbot
ssl_certificate_key /xxx/xxx/privkey.pem; # managed by Certbot
}

上面设置了以下4个参数。

  • SSL支持
  • 完全支持WebSocket
  • HTTP支持
  • xxxxx-backend.mydomain.nethttp://localhost: 8701
    (这是pynecone的后端根据您的pcconfig.py)

/somepath/my-nginx-sites-enabled/xxxxx-frontend.mydomain.net

server{
server_name xxxxx-frontend.mydomain.net;
location / {
proxy_pass http://localhost:3711;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /xxx/xxx/fullchain.pem; # managed by Certbot
ssl_certificate_key /xxx/xxx/privkey.pem; # managed by Certbot
}

上面设置了以下4个参数。

  • SSL支持
  • 完全支持WebSocket
  • HTTP支持
  • xxxxx-frontend.mydomain.nethttp://localhost: 3711(这是pynecone的前端根据您的pcconfig.py)

相关内容

  • 没有找到相关文章

最新更新