本文讲解本站同款APP部署所需要的后端api——RuleAPI的部署,APP部署详见另一篇文章。
本站同款APP部署详解之RuleAPP
博客APP上线了!

RuleAPI

yanshi

通过RuleApi,你可以将网站模块化,通过API将用户系统与网站分离,实现自定义的个人中心,基于token的验证机制可以实现多个域名下共用相同的用户系统。
通过RuleApi,还可以实现外置的作者中心投稿管理,甚至给网站额外增加一个功能全面的用户中心,总之无论怎样的功能搭配都可以用API和主网站完全分离但数据共通。
另外,RuleApi将整个网站的数据api化,所以还可以通过它让网站彻底动静分离,实现部分或者全站的js数据渲染,还可以通过它来搭建无数个与主站分离但是数据共通的网站,或者让网站的数据可以被其它网站共享。
最后,RuleApi可以配合开发微信小程序,APP,或者其它的接口化应用,总之更多的功能还可以继续发掘。

项目地址:

RuleAPI

安装

首先,要确定服务器上安装了 typecho ,因为RuleApi本质上是 typecho 的扩展,所以连接的也是 typecho 的数据库。然后,安装一个 redis ,这个宝塔都是自带的,在软件商店随便就安装了,无需配置什么,不需要我多说了吧。
l2q85zt9.png

1.打开终端,执行如下指令,安装screen

yum install screen

2.执行安装脚本

首先创建一个进程保护窗口,再进入opt文件夹,

screen -S api
cd /opt

然后执行RuleApi一键安装脚本,暂时只兼容Centos6以上版本,最好7(测试阶段)

国内节点:

wget https://www.ruletree.club/ruleapi.sh && sh ruleapi.sh install

海外节点 (香港,和境外服务器可以用,如果国内节点失效,也可以删除/opt目录下的ruleapi.sh再尝试这个):

wget https://www.ruletree.club/api/ruleapi.sh && sh ruleapi.sh install

运行成功效果如下:
演示

安装完成后,将服务器 /opt 文件夹中的 apiResult.php 文件,剪切到 typecho 网站的根目录。 apiResult.php 这个文件负责APP的更新推送,后面会在APP部署教程里详细说明。
l2q85eep.png

说明

脚本还提供其它管理选项,分别是如下:

注意,项目启动之后,运行日志将输出到 /opt 目录下 out.txt 文件,如果启动后出现异常或者无法访问,可以打开这个文件查看具体的原因。 /opt/application.properties 为主要的配置文件,如果出现安装脚本配置错误,项目无法正常启动,就可以在这个文件进行修改。

启动RuleAPi

sh /opt/ruleapi.sh start

停止RuleAPi

sh /opt/ruleapi.sh stop

重启RuleAPi

sh /opt/ruleapi.sh restart

删除RuleAPi

sh /opt/ruleapi.sh uninstall

查看帮助信息

sh /opt/ruleapi.sh help

配置

因为脚本安装只是完成基础的安装,更多的设置需要手动编辑 /opt/application.properties 文件,里面就可以配置包括对象存储,数据库前缀,图片key,和其它更加详细的信息等,修改完成后,通过执行重启指令生效。
l2q88paw.png

当然也可以在前台编辑。

访问RuleAPi

宝塔里额外创建一个网站(二级域名,千万别和其它网站共用),网站类型为静态就好,然后找到伪静态设置,加入如下代码保存。


location ^~ / {
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
    add_header 'Access-Control-Allow-Credentials' 'true';
    add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,X-Data-Type,X-Auth-Token';
    if ( $request_method = 'OPTIONS' ) { 
        return 200;
    }
     proxy_pass http://127.0.0.1:8080;
     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 REMOTE-HOST $remote_addr;
}

上述代码的用途是反向代理,并获取真实IP,且开始跨域。宝塔自带的反向代理功能比较复杂,所以省事的话,请采用上述的方法。其中127.0.0.1:8080就是你的内网接口地址,这里只需要改8080这个端口号(如果你定义了其它的话)

整个过程不要开启任何外网端口,切记!!!!

访问刚刚绑定的域名进入主页面后,请点击这个选项,完成最终的安装。

演示

本地图片访问配置

下面这些配置很重要,请严格按照我完全一模一样的填写和配置来,不要在不明白 springboot 机制的时候,就开始自我发挥!

1.部署在 linux 时,如果采用本地上传接口上传图片,那么图片将会存在临时文件夹中,如果项目重启或者更换,将可能导致数据丢失。所以需要手动创建以下文件,并新建一个网站,设置网站目录为如下:

/opt/files/static

接着,继续配置 application.properties ,找到 webinfo.uploadUrl ,修改为上面那个新建网站的域名,记得加http或者https申明。

这里也可以在api前台配置。

l2q8cjzm.png

邮箱发送和图片key配置

1.邮箱发送直接参考各个邮箱的配置方式,一般只需要配置三个东西。 host 是根据邮箱的不同设置不同,以不同邮箱官方为准,配置文件 application.properties 中代码如下。

spring.mail.host=smtp.qq.com
spring.mail.username=邮箱地址([email protected])
spring.mail.password=各种不同邮箱的授权码或者密码

2.APP中有个图库的功能,这里是获取pexels的免费无版权图片,后期可能会基于此开发文章插图功能,所以建议获取。直接前往这个地址注册并验证邮箱即可,完全是免费的: 传送门
l2q8f7el.png
然后填入 application.properties 的指定字段

webinfo.pexelsKey=Pexels获取的用户API Key

或前台文本框里
l2q8g3rm.png

对象存储OSS和COS配置

OSS配置案例如下:

aliyun.endpoint=oss-cn-beijing.aliyuncs.com(这里是地域节点地址)
aliyun.accessKeyId=
aliyun.accessKeySecret=XXX(你的accessKeySecret)
aliyun.bucketName=存储桶名称
aliyun.urlPrefix=存储桶外网访问地址
oss.filePrefix=api(文件夹前缀,必填)

COS配置案例如下:

spring.cos.accessKey=accessKey密钥
spring.cos.secretKey=secretKey密钥
spring.cos.bucket=ap-guangzhou(地域节点)
spring.cos.bucketName=ruletree(存储桶名称)
spring.cos.path=https://cdn.ruletree.club(对象存储外网访问地址)
spring.cos.prefix=api(文件夹前缀,必填)

以上配

RuleApi更新

首先执行更新脚本

sh /opt/ruleapi.sh update

该脚本会下载当前服务器最新版 jar 和最新版的脚本文件,并将新版的新版配置文件 application.properties 下载至 /opt/upfile ,更新过程并不会重启接口,请自己对照 /opt/upfile 中的配置文件,查看是否有新增项,然后修改 /opt/application.properties ,比对无误后,执行重启脚本:

sh /opt/ruleapi.sh restart

到这整个后端的api就安装好啦,下一步就是APP的部署了,这里有不明白的可以留言或者加入我的交流群交流。QQ群:695948781

本文来自投稿,不代表本站立场,如若转载,请注明出处:
最后修改:2023 年 08 月 27 日
如果觉得我的文章对你有用,请随意赞赏