前段时间利用pywebio搭建了一个在线生成简单封面图的工具。
当时候是部署在本地,但是我忘了记录了,现在想要更新一下代码,搞得一团糟。
screen
我在本地有一个放在pve上的ubuntu,项目久运行在这台机子上。想要持久化运行,我准备选择screen,好像也是使用的人比较多。
这里找了一个比较清楚的教程
Linux中的screen命令的用法 - watsono - 博客园
我按照上面说的,首先screen -ls
查看到有一个窗口。于是使用screen -r 窗口名
进入,接着按ctrl+d
把窗口kill调。因为我也不知道这个窗口是什么时候遗留下来的。
接着输入screen -S cover
就建立了一个叫做cover的窗口,这里的S必须得大写。接着在窗口中输入命令python3 main.py
调用程序。
但是这个时候报错,提示我说这个端口已经被占用了。我心领神会,肯定是上次部署持久化运行,影响还没有去除。
虽然我忘了上次是怎么弄的了,但是输入了下面的代码:
ps -ef|grep python
查到了后台运行的python程序,接着使用sudo kill -9 ID
把程序给强制关掉,再把上次的流程重新走一遍。这次顺利启动了。
启动之后按ctrl+a+d
进行退出,此时使用screen -ls
也确实看到我刚才的cover窗口是最小化的形式。
caddy
虽然说本地已经可以访问到我的cover服务了,但是外网还不行。
我之前把这个web服务做了端口映射。接着在腾讯云里挂了CDN进行回源。
所以需要把域名跟这个服务怎么绑定一下,就像我用宝塔建站的时候填入域名一样。好吧,我这一块真的不是很懂,反正Nginx也没学过。
但是这次我不使用Nginx了,因为反向代理之前试过很麻烦。根据开发者的推荐,我使用caddy2来完成这个操作。
首先我在刚才运行py文件的地方放入了一个Caddyfile文件,里面就填入了简短的代码:
cover.xhhdd.cc:80 {
reverse_proxy localhost:5015
}
接着在这个目录下输入caddy run
就行。
关于caddy的具体操作我已经有点模糊了,官网的英文看不明白,当时候好像是参考的博客园上的一位老哥的文章。
关于pywebIO
写上一篇文章的时候,在部署的方式上花费了很多的时间。
主要是会话结束之后的那个清理模块,在不同的部署方式下,有时候会启动,有时候不会启动。我还特意去github上面提问。
不过这个问题最近开发者好像已经是解决了,所以不用操心了。