云服务器怎么部署两个项目?

在云服务器上部署两个项目,可以通过不同的方式实现,具体取决于你的需求(比如是否是Web项目、使用什么技术栈等)。下面是一个通用的指南,适用于常见的Web项目(如Node.js、Python Flask/Django、Java Spring Boot、PHP等)。


一、基本思路

要在一台云服务器上部署两个项目,主要有以下几种常见方式:

方式1:使用不同端口

  • 每个项目监听不同的端口。
  • 通过访问 IP:PORT 或绑定域名 + 端口来区分。

方式2:使用 Nginx/Apache 反向 + 域名

  • 使用不同的子域名或主域名,例如:
    • project1.example.com
    • project2.example.com
  • Nginx 根据域名将请求转发到对应项目的端口。

方式3:使用 Docker 容器化部署

  • 每个项目运行在一个独立的容器中。
  • 容器之间隔离良好,便于管理。

二、详细步骤(以 Nginx + 不同端口为例)

步骤1:准备环境

确保你已经完成以下操作:

  • 购买并配置好云服务器(如阿里云、腾讯云、AWS)
  • 安装了操作系统(如 Ubuntu)
  • 安装了必要的软件(如 Nginx、Node.js、Python、Docker 等)

步骤2:部署第一个项目(假设为 Node.js)

# 启动第一个项目,监听 3000 端口
cd /var/www/project1
npm install
node app.js

确保防火墙开放 3000 端口(或者用 Nginx 反向)

步骤3:部署第二个项目(假设为 Python Flask)

# 启动第二个项目,监听 5000 端口
cd /var/www/project2
pip install -r requirements.txt
python app.py

步骤4:安装和配置 Nginx

sudo apt update
sudo apt install nginx

配置第一个项目:

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

写入如下内容:

server {
    listen 80;
    server_name project1.example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

配置第二个项目:

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

写入如下内容:

server {
    listen 80;
    server_name project2.example.com;

    location / {
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

创建软链接并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/project1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/project2 /etc/nginx/sites-enabled/

sudo nginx -t           # 测试配置文件
sudo systemctl restart nginx

三、域名解析设置

你需要在域名服务商后台设置 DNS 解析:

  • project1.example.com → 你的云服务器公网 IP
  • project2.example.com → 同一个 IP

这样用户就可以通过两个域名分别访问两个项目。


四、使用 Docker 部署(可选)

如果你使用 Docker,可以分别构建镜像并运行容器,指定不同的端口映射:

docker run -d -p 3000:3000 project1-image
docker run -d -p 5000:5000 project2-image

然后依然可以用 Nginx 做反向。


五、补充建议

场景 推荐方式
两个 Web 项目 Nginx + 不同域名/端口
多个服务需要隔离 Docker 容器化
快速测试 直接用不同端口访问
Java/Spring Boot 可使用 Tomcat/Jetty+Nginx
PHP 项目 Apache/Nginx + FastCGI

六、常见问题

Q1:怎么查看端口是否被占用?

netstat -tuln | grep 3000
lsof -i :3000

Q2:如何开机自启动项目?

  • 使用 systemd 创建服务
  • 或者用 pm2(Node.js)、screennohup 等工具

如果你告诉我你使用的语言/框架/云平台,我可以给出更具体的部署方案。欢迎继续提问!

未经允许不得转载:CLOUD技术博 » 云服务器怎么部署两个项目?