这是自托管的文档,实际上,从文档中,
我不太理解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)
- 主机中没有人使用端口3711和8701。
我的目标对于一个松果项目,它将最终构建前端部分和后端部分。我希望实现以下目标:
- 我只想在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.net→111.123.xxx.33
- xxxxx-backend.mydomain.net→111.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.net→http://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.net→http://localhost: 3711(这是pynecone的前端根据您的pcconfig.py)