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 staticstatic文件夹是用于上传文件保存用,.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和前端应用就完成了。