2

总结一下搭建个人网站《曼云古籍在线识别》的完整流程 - 包建强

 1 year ago
source link: https://www.cnblogs.com/Jax/p/17175718.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

总结一下搭建个人网站《曼云古籍在线识别》的完整流程

继2年前开发出一个标注工具PaddleOCRLabel之后,我就开始炼丹之旅,全面all in人工智能,历时一年,终于炼成了第一颗“丹”——针对于古籍的ocr识别模型。经过400万图片的验证,目前对四库全书版的古籍识别度较高,大约是99.8%。

以下链接是实际效果:https://www.ocr666.top

13430-20230303152010836-1118347092.png

有了模型,接下来就是搭建上面这个网站,把成果展示给用户。于是我大约花了三周时间,完成了一次个人建站的过程。整体原则是在不耽误性能的前提下,花最少的( $ _ $ ),最终花了150元左右。我总结一下这次建站的心得,除了写前端代码和后台服务,其他都是第一次接触,所以有很多心得分享:

1.购买服务器

天翼云。1核2G,40G硬盘,又额外买了40G硬盘。共计130元。好处是没有流量限制。

注意,如果要域名备案,就一定是用自己的身份证实体验证来购买服务器。

不小心多买了一块40G的硬盘,否则又能节省30元左右 。但好处是借此学会了linux挂载新硬盘的技术。

2.购买域名

域名要和服务器在一家厂商买,否则不能备案。这里仍然旋转天翼云。top后缀的,24元。明年续费也便宜。

在域名解析页面,配置服务器ip和域名的映射,这里第一次接触cname和a。

备案流程就是填写几个表格,然后用一个小程序人脸识别,就完事了,一小时左右完成。

但是审核流程就很久了,大约花了2周时间。先后提交了2次,第一次被拒,花了一周。修改后,再次提交,又等了一周。

天翼云的免费备案服务做得很到位。有任何问题直接打电话去问客服。有一次凌晨提交的工单,半夜12点半客服就打过来解决问题了。

4.制作网站

基于react,用了1周时间。后台搭建nginx,把做好的react项目,直接上传到服务器,把80端口指向该目录即可。

后台有两个服务。一个用nodejs,一个用python的flask+tornado。

数据库用mysql,基于docker。

5.优化网站界面

一开始网站做的很low,后来找了一个高大上的网站模板,把模板塞进现有react项目中,用了一周时间。

6.申请https证书

1)申请免费https是个很麻烦的是

七牛云有免费的,缺点是单域名的,优点是可以申请多个。

先申请一个。申请后要去买域名的网站,在域名解析页面,填写该证书对应的信息。

2)在服务器配置证书

下载https证书,上传到服务器。

nginx中配置。并把http的请求也转发到443端口。

这里注意,精简版的nginx不支持https。要下载源代码版本的nginx,重新编译即可。

3)修改所有代码

把原先所有访问ip:port的地方,全都改为https://域名 的方式。

注意:https网页只能访问https的接口。

7.网站统计

这里使用umami这个开源项目,在服务器搭建。有几个坑:

1)初始化时,需要手动在mysql创建数据库,然后去编写那个.env脚本,才能执行成功。

2)把监控代码植入到react网站项目中,放到html的header中。因为umami是ip:3000这样的访问url,放到https的网站中,不能访问,为此需要为umami再次申请一个免费的https证书。

接下来就是著名的在nginx中反向代理配置二级域名的技术了,终于在这里派上用场了。有了这个二级域名,就可以把他塞进html的header中。

8.安装宝塔平台。

宝塔的免费版,基本就够用了。

1)使用其中的ftp服务,把400万张图片,大于40G,上传到服务器。因为家里是千兆网络,速度很快。

2)不要使用其中的nginx,自己在本地搭建。因为我直接在nginx中,默认指定react项目为443接口,所以不需要额外在宝塔中创建网站了。

3)在宝塔的“软件商店”菜单中,下载免费的"进程守护管理器"。在里面创建2个项目,分别指向nodejs后台服务和python flask后台服务。进程守护管理器的好处是,一旦接口因为不确定原因崩溃了,可以自动重启。

9.网站SEO

这里用到百度站长。

1)登录进入百度站长页面,获取属于自己的token。然后把网站的所有链接url,推送到百度。

他提供了一个接口,每天可以推送3000个url。

为此我编写了2个python脚本,第一个脚本生成网站8万静态页的url,第二个脚本负责每天推送3000个url到百度。

宝塔中有一个定时任务功能,在里面配置第二个脚本即可。

 2)因为react项目是按照SPA做的,页面内点击按钮切换内容,url不会发生变化。为此需要重构react项目,比如详情页,要让他支持直接输入详情页的url,参数中带id,就可以跳转到这个id对应的详情页面。只有这样,才能把8万多详情页的url推送到百度。

任重而道远,接下来就不再花时间做网站了,而是把更多精力投入到ai上,对算法进行优化。

与君共勉。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK