部署 #

Docker 部署 #

Dockerfile #

dockerfile
FROM rust:1.70 as builder

WORKDIR /app

COPY Cargo.toml Cargo.lock ./
COPY src ./src

RUN cargo build --release

FROM debian:bullseye-slim

RUN apt-get update && apt-get install -y \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /app/target/release/myapp /usr/local/bin/myapp

EXPOSE 8080

CMD ["myapp"]

构建和运行 #

bash
docker build -t myapp .
docker run -p 8080:8080 myapp

反向代理 #

Nginx 配置 #

nginx
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

环境变量 #

rust
use std::env;

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    let host = env::var("HOST").unwrap_or_else(|_| "127.0.0.1".to_string());
    let port = env::var("PORT")
        .unwrap_or_else(|_| "8080".to_string())
        .parse()
        .unwrap_or(8080);
    
    HttpServer::new(|| App::new())
        .bind(format!("{}:{}", host, port))?
        .run()
        .await
}

下一步 #

继续学习 性能优化,了解性能调优!

最后更新:2026-03-29