走啊走
加油

阿里云的轻量应用服务器如何部署项目?

服务器价格表

在阿里云轻量应用服务器(Simple Application Server, SAS)上部署项目,通常遵循“系统初始化 → 环境安装 → 代码部署 → 服务配置 → 安全与访问”的标准流程。以下是通用且详细的操作步骤:


一、前置准备

  1. 购买并登录控制台

    • 在阿里云官网创建轻量应用服务器实例(推荐选择 Ubuntu 20.04/22.04 或 CentOS 7/8)。
    • 设置好 root 密码或 SSH 密钥对。
    • 确认已绑定公网 IP(轻量默认自带),并在【防火墙】中放行所需端口(如 80、443、自定义端口等)。
  2. 本地连接服务器

    ssh root@<你的公网IP>
    # 或使用密钥登录
    ssh -i ~/.ssh/id_rsa root@<你的公网IP>

二、基础环境搭建(以 Java/Node.js/Python 为例)

✅ 方案 A:部署 Web 项目(如 Spring Boot + Nginx)

# 1. 更新系统
sudo apt update && sudo apt upgrade -y   # Ubuntu
# 或
sudo yum update -y                       # CentOS

# 2. 安装 JDK(示例:OpenJDK 17)
sudo apt install openjdk-17-jdk -y     # Ubuntu
# 或
sudo yum install java-17-openjdk-devel -y  # CentOS

# 3. 安装 Nginx
sudo apt install nginx -y              # Ubuntu
# 或
sudo yum install nginx -y              # CentOS

# 4. 启动 Nginx 并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

✅ 方案 B:部署 Node.js 项目

# 安装 Node.js(推荐使用 nvm 管理版本)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install --lts
node -v && npm -v

# 安装 PM2(进程管理器)
sudo npm install pm2 -g

✅ 方案 C:部署 Python/Django 项目

sudo apt install python3-pip python3-venv -y
python3 -m venv venv
source venv/bin/activate
pip install django gunicorn

💡 提示:若需数据库(MySQL/PostgreSQL),可一键安装:

# MySQL
sudo apt install mysql-server -y
sudo mysql_secure_installation

# PostgreSQL
sudo apt install postgresql postgresql-contrib -y

三、上传项目代码

方式 1:Git 拉取(推荐)

cd /var/www/myproject
git clone <你的仓库地址> .
# 注意:确保 `.gitignore` 不包含敏感信息;如需私仓,提前配置 SSH 密钥

方式 2:SCP/SFTP 上传

# 本地终端执行
scp -r ./dist/* root@<公网IP>:/var/www/myproject/
# 或使用 SFTP 工具(如 WinSCP、FileZilla)连接上传

四、配置运行环境与启动服务

🌐 示例:Spring Boot + Nginx 反向X_X

  1. 编译打包项目(本地或远程):

    mvn clean package -DskipTests
  2. target/*.jar 放到 /var/www/myproject/app.jar

  3. 创建 systemd 服务文件:

    sudo nano /etc/systemd/system/myapp.service

    内容:

    [Unit]
    Description=My Spring Boot App
    After=network.target
    
    [Service]
    User=root
    WorkingDirectory=/var/www/myproject
    ExecStart=/usr/bin/java -jar app.jar
    Restart=always
    Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"
    
    [Install]
    WantedBy=multi-user.target

    启用服务:

    sudo systemctl daemon-reload
    sudo systemctl start myapp
    sudo systemctl enable myapp
  4. 配置 Nginx 反向X_X:

    sudo nano /etc/nginx/sites-available/default

    添加:

    server {
       listen 80;
       server_name your-domain.com;  # 替换为你的域名
    
       location / {
           proxy_pass http://localhost: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;
       }
    }

    测试并重载:

    sudo nginx -t
    sudo systemctl reload nginx

🚀 其他框架启动方式

技术栈 启动命令示例
Node.js (PM2) pm2 start app.js --name myapp
Django gunicorn --bind :8000 myproject.wsgi:application
Go ./main & 或配合 systemd

五、安全加固建议(重要!)

  • 🔒 修改默认 SSH 端口(如改为 2222),并在防火墙放行新端口。
  • 🔐 禁用 root 远程登录,改用普通用户 + sudo
  • 🛡️ 安装 fail2ban 防止暴力破解:
    sudo apt install fail2ban -y
    sudo systemctl enable fail2ban
  • 📜 配置安全组规则:仅在阿里云控制台开放必要端口(如 80/443/SSH 自定义端口)。
  • 🔄 定期备份数据(可用 rsync 或阿里云快照功能)。

六、验证与监控

  • 访问 http://<公网IP> 或绑定域名后测试。
  • 查看日志:
    journalctl -u myapp -f          # systemd 服务日志
    tail -f /var/log/nginx/error.log
    pm2 logs                         # Node.js 日志
  • 使用阿里云监控(云监控 → 主机监控)观察 CPU、内存、磁盘使用情况。

需要我针对具体技术栈(如 Vue+Express、React+Nginx、Docker 容器化部署等)提供定制化部署脚本吗?欢迎告诉我你的项目类型 😊