Rust Axum web应用部署方案

使用service部署

1. 创建 Systemd 服务文件

文件名及内容根据自己修改,存放路径为:/etc/systemd/system/myapp.service,内容参考:

# /etc/systemd/system/myapp.service
[Unit]
Description=myapp
After=network.target

[Service]
Type=simple
User=www
Group=www
ExecStart=/home/www/myapp/target/release/myapp
Restart=always
ReStartSec=5
Environment=RUST_LOG=info

[Install]
WantedBy=multi-user.target

其中ExecStart路径为rust build后二进制文件路径,一般为项目目录下的/target/release/项目名称,如果是win下会带.exe后缀;

UserGroup,根据自己系统用户修改,如不知道则设置为root

2. 重新加载 Systemd 配置

在创建或修改 systemd 服务文件后,需要重新加载 systemd 配置。

systemctl daemon-reload

3. 创建部署脚本

在项目根目录下新建deploy.sh文件,内容如下:

#!/bin/bash

# 设置应用名称
SERVICE_NAME=myapp

# 拉取最新代码,如果使用git仓库
echo "git fetch..."
git fetch --all
git reset --hard origin/master
git pull

# 编译Rust
echo "Starting cargo build --release..."
cargo build --release

# 授权
echo "Starting chown..."
# 如果service中用root用户,则注释掉下面一行
chown -R www ./target
chown -R 755 ./target

# 停用服务
echo "Stopping and disabling service..."
systemctl stop $SERVICE_NAME

# 等待几秒钟以确保服务完全停止
sleep 2

# 启用服务
echo "Enabling and starting service..."
systemctl enable $SERVICE_NAME
systemctl start $SERVICE_NAME

# 检查服务状态
echo "Checking service status..."
systemctl status $SERVICE_NAME

4. 执行部署脚本

在项目跟目录执行部署脚本deploy.sh:

./deploy.sh

如果遇上权限不足,则先执行下面这行再执行上面脚本:

chown 755 ./deploy.sh

5. 检查

可以执行journalctl -u myapp -f查看服务日志,如果正常启动,则访问网站查看是否正常运行。

6. nginx代理规则

参考规则

location / {
        proxy_pass http://127.0.0.1:7878;
        proxy_set_header Host $host:$server_port;
        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;        proxy_set_header X-Host $host:$server_port;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 30s;
        proxy_read_timeout 86400s;
        proxy_send_timeout 30s;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

Done!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇