返回首页
01/11/2023

从零部署一个Rust写的REST API应用,并部署astro写的前端应用。

从零开始部署一个Rust写的API应用,及对应的astro写的前端。

第一步、本地编译rust应用。

cargo build --release

关于如何在windows上边跨平台构建linux二进制,请参考: https://github.com/japaric/rust-cross ,但是我建议直接用LINUX系统直接构建LINUX的二进制是最方便的。

第二步、上传编译好的rust二进制。

二进制所在位置为/target/release/application

chmod +x ./application

第三步、创建好需要的文件夹及文件

mkdir app
mv application app
cd app
touch .env
mkdir static

static文件夹是用于上传文件保存用,.env是为了填写环境变量,环境变量如下:

MONGO_URL=mongodb://rust:[email protected]:27017/rust
MONGO_DB_NAME=rust
JWT_SECRET=testmyrustblog
HOST=http://127.0.0.1:8080
[email protected]
INIT_PASSWORD=adminadmin
INIT_USERNAME=admin

这只是我的环境变量设置,每一个应用的设置都不同,就不再赘述。

第四步、启动应用

nohup ./application > log.txt &

直接用nohup命令行启动,很方便。

第五步、安装Nodejs

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs -y
corepack enable

以上命令行,安装nodejs20版本,并且启动了yarn命令行功能。

第六步、安装Mongodb

以Ubuntu22和Mongodb6.0版本为例

sudo apt-get install gnupg curl

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

sudo apt-get update

sudo apt-get install -y mongodb-org

sudo systemctl start mongod

sudo systemctl enable mongod

很简单,如上就安装好了。

创建数据库用户和密码,用于rust应用使用。

db.createUser( { user: "rust", pwd: "rust", roles: [ { role: "readWrite", db: "rust" } ] } )

第七步、构建并运行astro应用

构建和运行也很简单。

首先更改配置项,设置API域名:

export default {
  apiHost: 'http://127.0.0.1:8080',
};

然后就是构建和运行:

astro build
yarn global add pm2
pm2 start dist/server/entry.mjs
export NODE_ENV=production
pm2 reload all --update-env

第八步、安装redis

sudo apt install redis-server

第九步、安装caddy,并且反代域名

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

配置文件在/etc/caddy,文件名为Caddyfile,编辑它即可:

https://www.vam3d.top, https://vam3d.top {
    reverse_proxy 127.0.0.1:4321
}

最后,caddy reload。

如此,一个完整的RUST REST API和前端应用就完成了。