当前位置:首页 > Linux > 正文

Linux部署项目实战教程

Linux部署项目通常包含:安装运行环境(如Python/Node.js)、上传项目文件、安装依赖库(如pip/npm)、配置环境变量及服务(如Nginx)、设置启动命令(如systemd服务)并开放防火墙端口。

部署前的关键准备

  1. 环境选择

    • 推荐Ubuntu LTS(20.04/22.04)或CentOS Stream(稳定性强、社区支持完善)
    • 通过lsb_release -a验证系统版本
  2. 最小权限原则

    adduser deployuser # 创建专用部署用户 usermod -aG sudo deployuser # 授予必要权限
  3. 安全加固(必做)

    • 启用UFW防火墙: ufw allow OpenSSH ufw allow 80/tcp # HTTP ufw allow 443/tcp # HTTPS ufw enable
    • 禁用root登录:修改/etc/ssh/sshd_config中PermitRootLogin no


项目部署7步标准化流程

▶ 步骤1:安装运行时环境

# Node.js示例 (使用nvm管理版本) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash nvm install --lts # Python示例 sudo apt install python3-venv # Ubuntu python3 -m venv .venv source .venv/bin/activate

▶ 步骤2:获取项目代码

git clone https://github.com/yourproject.git cd yourproject git checkout release # 切换到稳定分支

▶ 步骤3:配置环境变量

# 创建.env文件(切勿提交至Git) echo "DATABASE_URL=postgres://user:pass@localhost/db" >> .env echo "SECRET_KEY=$(openssl rand -hex 32)" >> .env

▶ 步骤4:安装依赖

# 根据技术栈选择 npm install --production # Node.js pip install -r requirements.txt # Python composer install --no-dev # PHP

▶ 步骤5:数据库初始化

# PostgreSQL示例 CREATE DATABASE project_prod; CREATE USER deploy_user WITH PASSWORD 'securePass'; GRANT ALL PRIVILEGES ON DATABASE project_prod TO deploy_user;

▶ 步骤6:配置反向代理(Nginx示例)

/etc/nginx/sites-available/yourproject.conf:

Linux部署项目实战教程 第1张

▶ 步骤7:进程守护(Systemd服务)

创建/etc/systemd/system/yourproject.service:

[Unit] Description=Your Project Service After=network.target [Service] User=deployuser WorkingDirectory=/opt/yourproject ExecStart=/usr/bin/node index.js # 替换为实际启动命令 Restart=always Environment=NODE_ENV=production [Install] WantedBy=multi-user.target

启动服务:sudo systemctl daemon-reload && sudo systemctl start yourproject


部署后关键操作

  1. 验证服务状态

    Linux部署项目实战教程 第2张

    systemctl status yourproject # 检查进程 curl -I http://localhost:3000 # 测试内部访问 nginx -t && systemctl reload nginx # 重载配置
  2. 日志监控方案

    journalctl -u yourproject -f # 实时查看日志 # 推荐配置logrotate防止日志膨胀
  3. HTTPS加密(Let’s Encrypt)

    sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com
  4. 自动化部署进阶

    • 使用Git Hooks实现代码推送自动部署
    • 配置GitLab CI/CD或GitHub Actions流水线


安全与性能最佳实践

  • 安全加固

    Linux部署项目实战教程 第3张

    • 定期更新:sudo apt update && sudo apt upgrade -y
    • 配置fail2ban防御SSH暴力免费
    • 使用非标准端口+密钥认证(禁用密码登录)

  • 性能优化

    # Nginx调优片段 gzip on; gzip_types text/css application/json; keepalive_timeout 65; client_max_body_size 50M; # 根据需求调整
  • 备份策略

    # 每日数据库备份 0 3 * * * pg_dump -U user dbname > /backups/db_$(date +%F).sql

权威提示:部署方案需根据实际技术栈调整,生产环境务必做到:

  1. 配置独立数据库账号(非root权限)
  2. 敏感信息通过.env管理(禁用配置文件硬编码)
  3. 至少每月执行安全更新
  4. 重要操作前创建系统快照


引用说明:本文操作指南参考Linux基金会发布的《Production Deployment Standards》及Nginx官方部署手册,结合AWS、阿里云最佳实践总结,安全建议符合CIS Linux Benchmark标准。

(全文完)

0