json-server
需要node环境才能运行,所以需要检查本地是否安装node,使用node -v
查看本地环境是否安装,如果安装会提示版本,如果未安装则报错。
npm install -g json-server
json-server --help
{
"data": [
{
"title": "博物馆",
"address": "成都",
"date": "2021年9月8日"
},
{
"title": "青城山",
"address": "成都",
"date": "2021年9月9日"
}
]
}
然后在同一路径执行
json-server --watch db.json --port 5000
PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。
npm install pm2 -g
创建一个json文件
vim process.json
内容是:
{
"apps": [
{
"name": "mock-api",
"script": "json-server",
"args": "--watch /usr/share/nginx/html/data/db.json --port 5000"
}
]
}
其中script
表示我们想要执行的命令,args指具体的参数,注意这里的路径需要使用绝对路径,跟我们刚才执行json-server --watch db.json --port 5000
的部分一样。
在同一路径执行pm2:
pm2 start process.json
前情提要:阿里云服务器系列(四)配置Nginx
我们希望pm2 mock的数据会被代理,编辑Nginx配置文件:
vim /usr/local/nginx/conf/nginx.conf
location /data {
rewrite /data/(.*) /$1 break;
proxy_pass http://localhost:5000;
}
这样我们pm2起的5000端口就会被代理到"/data"
前情提要:阿里云服务器系列(五)使用Github Action发布项目到阿里云
在ci.yaml
文件中添加:
# deploy data to aliyun
- name: deploy mock data to aliyun server
uses: easingthemes/[email protected]
env:
SSH_PRIVATE_KEY: ${{ secrets.ALIYUN_SERVER_ACCESS_TOKEN }}
ARGS: "-avzr --delete"
SOURCE: "db.json"
REMOTE_HOST: ${{ secrets.ALIYUN_SERVER_HOST }}
REMOTE_USER: ${{ secrets.ALIYUN_REMOTE_USER }}
TARGET: ${{ secrets.ALIYUN_DATA_TARGET }}
# start json-server
- name: restart json-server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.ALIYUN_SERVER_HOST }}
username: ${{ secrets.ALIYUN_REMOTE_USER }}
key: ${{ secrets.ALIYUN_SERVER_ACCESS_TOKEN }}
script: |
cd ${{ secrets.ALIYUN_DATA_TARGET }}
pm2 restart process.json
第一个操作是把db.json
文件推送到服务器指定的目录中
第二个操作是进入目标路径,然后执行pm2
这里是重启pm2的操作:pm2 restart process.json