Alibaba Cloud Linux 3.2104 LTS 64位如何部署项目?

在 Alibaba Cloud Linux 3.2104 LTS(基于 CentOS/RHEL 8 内核优化)上部署项目,通常涉及以下几个核心步骤。由于该操作系统兼容 RHEL/CentOS生态,你可以使用标准的 Linux 运维流程,但建议优先使用其自带的优化工具和包管理器 dnf

以下是通用且推荐的部署流程,适用于大多数 Web 应用、Java 应用、Python 应用等:


✅ 一、基础环境准备

1. 登录服务器

ssh root@<your-server-ip>

2. 更新系统软件包

sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y vim wget curl git net-tools telnet

3. 配置防火墙(如需开放端口)

Alibaba Cloud Linux 默认使用 firewalld

sudo systemctl enable firewalld
sudo systemctl start firewalld

# 开放常用端口(如 80, 443, 8080)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

⚠️ 注意:阿里云 ECS 实例还需在 安全组 中放行对应端口。


✅ 二、根据项目类型选择部署方案

🟦 场景1:部署 Java 应用(Spring Boot / Tomcat)

方法 A:直接运行 JAR 包

# 上传 jar 包到服务器,例如 /opt/myapp/
cd /opt/myapp
nohup java -jar myapp.jar > app.log 2>&1 &

方法 B:使用 Systemd 管理进程(推荐)

创建服务文件 /etc/systemd/system/myapp.service

[Unit]
Description=My Spring Boot App
After=network.target

[Service]
User=root
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -jar /opt/myapp/myapp.jar
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure

[Install]
WantedBy=multi-user.target

启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
sudo systemctl status myapp

🟩 场景2:部署 Node.js / Nginx + PM2

安装 Node.js 和 npm

curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo dnf install -y nodejs

安装 PM2(进程管理器)

sudo npm install -g pm2

部署项目

cd /opt/myapp
pm2 start app.js --name "myapp"
pm2 save
pm2 startup systemd

安装 Nginx 作为反向X_X

sudo dnf install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx

编辑 /etc/nginx/conf.d/myapp.conf

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

重启 Nginx:

sudo nginx -t && sudo systemctl reload nginx

🟨 场景3:部署 Python 应用(Flask / Django)

安装 Python 3.9+(Alibaba Cloud Linux 3 自带较新 Python)

python3 --version

使用虚拟环境

cd /opt/myapp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

使用 Gunicorn + Systemd 部署

安装 Gunicorn:

pip install gunicorn

创建 /etc/systemd/system/myapp.service

[Unit]
Description=Gunicorn instance to serve myapp
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/opt/myapp
Environment="PATH=/opt/myapp/venv/bin"
ExecStart=/opt/myapp/venv/bin/gunicorn --workers 3 --bind unix:myapp.sock -m 007 wsgi:app

[Install]
WantedBy=multi-user.target

启用并启动:

sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp

配合 Nginx 反向X_X(类似 Node.js 示例,将 proxy_pass 指向 unix:/opt/myapp/myapp.sock)。


🟥 场景4:部署 Docker 容器化应用

安装 Docker

sudo dnf install -y yum-utils
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
sudo systemctl start docker

部署项目

docker pull your-image:tag
docker run -d -p 8080:80 --name myapp your-image:tag

或使用 docker-compose.yml

version: '3'
services:
  web:
    image: your-image:tag
    ports:
      - "8080:80"
docker-compose up -d

✅ 三、监控与日志管理

查看服务状态

systemctl status myapp
journalctl -u myapp -f

日志轮转(logrotate)

确保应用日志不会无限增长,可配置 /etc/logrotate.d/myapp


✅ 四、安全加固建议

  1. 禁用 root 远程登录

    vi /etc/ssh/sshd_config
    # 设置 PermitRootLogin no
    systemctl restart sshd
  2. 配置 SSH 密钥登录

  3. 定期更新系统

    sudo dnf update -y
  4. 使用云盾或安骑士进行安全扫描


✅ 五、自动化部署(可选)

  • 使用 Jenkins / GitLab CI / GitHub Actions 实现自动化构建与部署。
  • 使用 Ansible / Shell 脚本 批量部署多台服务器。

📌 总结

项目类型 推荐部署方式 关键工具
Java Systemd + JAR systemd, java
Node.js PM2 + Nginx pm2, nginx
Python Gunicorn + Nginx gunicorn, nginx
Docker Docker / Docker Compose docker, docker-compose
PHP Nginx + PHP-FPM nginx, php-fpm

如你能提供具体的项目类型(如语言、框架、是否需要数据库等),我可以给出更精确的部署脚本和配置。