部署
在 Loco 中部署非常简单,这也是为什么本指南如此简短的原因。虽然在开发过程中大多数时候你都在使用 cargo
,但在部署时,你使用的是已编译的二进制文件,目标服务器上不需要 cargo
或 Rust。
要部署,请为你的相关服务器架构构建生产二进制文件:
然后将你的二进制文件连同你的 config/
文件夹复制到服务器。之后你可以在你的服务器上运行 myapp start
。
就这些!
我们特别注意将你的所有工作都嵌入到单个二进制文件中,因此除了它之外,你在服务器上不需要任何其他东西。
检查你的生产配置
在部署到生产环境时,有几个配置部分非常重要,需要检查并进行相应的设置:
- Logger:
# 应用程序日志配置
logger:
# 启用或禁用日志记录。
enable: true
# 启用漂亮的错误回溯 (设置 RUST_BACKTRACE=1)
pretty_backtrace: true
# 日志级别,选项:trace, debug, info, warn 或 error。
level: debug
# 定义日志格式。选项:compact, pretty 或 json
format: compact
# 默认情况下,logger 仅过滤来自你的代码或来自 `loco` 框架的日志。要查看所有第三方库的日志
# 取消注释下面这行配置可以覆盖并查看所有第三方库的日志。
# override_filter: trace
- Server:
server:
# 服务器监听的端口。服务器绑定为 0.0.0.0:{PORT}
port:
# 邮件程序将指向的 UI 主机名或 IP 地址。
host: http://localhost
- Database:
database:
# 数据库连接 URI
uri:
# 启用后,将记录 sql 查询。
enable_logging: false
# 设置获取连接时的超时时长。
connect_timeout: 500
# 设置关闭连接前的空闲时长。
idle_timeout: 500
# 连接池的最小连接数。
min_connections: 1
# 连接池的最大连接数。
max_connections: 1
# 应用程序加载时运行数据库迁移
auto_migrate: true
# 应用程序加载时截断数据库。这是一个危险的操作,请确保仅在开发环境或测试模式下使用此标志
dangerously_truncate: false
# 应用程序加载时重新创建架构。这是一个危险的操作,请确保仅在开发环境或测试模式下使用此标志
dangerously_recreate: false
- Mailer:
mailer:
# SMTP 邮件程序配置。
smtp:
# 启用/禁用 smtp 邮件程序。
enable: true
# SMTP 服务器主机。例如 localhost, smtp.gmail.com
host:
# SMTP 服务器端口
port: 1025
# 使用安全连接 (SSL/TLS)。
secure: false
# auth:
# user:
# password:
- Queue:
queue:
kind: Redis
# Redis 连接 URI
uri:
# 启动时危险地刷新 Redis 中的所有数据。危险操作,请确保仅在开发环境或测试模式下使用此标志
dangerously_flush: false
- JWT secret:
auth:
# JWT 认证
jwt:
# 用于令牌生成和验证的密钥
secret: PqRwLF2rhHe8J22oBeHy
# 令牌过期时间,单位为秒
expiration: 604800 # 7 天
运行 loco doctor
你可以在你的服务器上运行 loco doctor
来检查你的环境的连接健康状况。
生成
Loco 提供了一个部署模板,可以创建部署基础设施。
)
部署选项:
- Docker:
- 生成一个 Dockerfile,可以用于构建和部署。
- 创建一个 .dockerignore 文件。
- Shuttle:
- 生成一个 shuttle main 函数。
- 添加
shuttle-runtime
和shuttle-axum
作为依赖项。 - 为部署添加一个 bin 入口点。
- Nginx:
- 生成一个 nginx 配置文件,用于反向代理。
选择最适合你部署需求的选项。祝你部署顺利!
如果你希望在不同的云平台上部署,请随时发起 pull request。非常欢迎你的贡献!