使用轻量云服务器如何部署多个网站?

在轻量云服务器上部署多个网站,主要有以下几种方案,我会从简单到复杂进行介绍:

一、方案选择

1. 基于端口的部署(最简单)

  • 不同网站使用不同端口访问
  • 如:网站1用80端口,网站2用8080端口
  • 适合测试环境或内部使用

2. 基于子目录的部署

  • 所有网站共享同一个域名,通过路径区分
  • 如:example.com/site1、example.com/site2
  • 适合相关项目

3. 基于虚拟主机的部署(最常用)

  • 不同域名访问不同网站
  • 如:www.site1.com、www.site2.com
  • 适合正式生产环境

4. 使用Docker容器

  • 每个网站运行在独立容器中
  • 便于管理和隔离

二、基于虚拟主机的详细部署(Nginx为例)

步骤1:安装必要软件

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装Nginx
sudo apt install nginx -y

# 安装PHP(如果需要)
sudo apt install php-fpm php-mysql -y

步骤2:创建网站目录结构

# 创建第一个网站目录
sudo mkdir -p /var/www/site1/html
sudo chown -R $USER:$USER /var/www/site1/html

# 创建第二个网站目录
sudo mkdir -p /var/www/site2/html
sudo chown -R $USER:$USER /var/www/site2/html

步骤3:创建测试页面

# 网站1首页
echo "<h1>Welcome to Site 1</h1>" > /var/www/site1/html/index.html

# 网站2首页
echo "<h1>Welcome to Site 2</h1>" > /var/www/site2/html/index.html

步骤4:配置Nginx虚拟主机

# 创建第一个网站配置文件
sudo nano /etc/nginx/sites-available/site1.conf

site1.conf内容:

server {
    listen 80;
    server_name site1.com www.site1.com;

    root /var/www/site1/html;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    # PHP配置(如果需要)
    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }
}

site2.conf内容类似,修改server_name和root路径

步骤5:启用网站配置

# 创建符号链接
sudo ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.conf /etc/nginx/sites-enabled/

# 测试配置
sudo nginx -t

# 重启Nginx
sudo systemctl restart nginx

三、Apache方案(备选)

安装Apache

sudo apt install apache2 -y

配置虚拟主机

# 创建配置文件
sudo nano /etc/apache2/sites-available/site1.conf

site1.conf内容:

<VirtualHost *:80>
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1/html

    <Directory /var/www/site1/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

启用站点

sudo a2ensite site1.conf
sudo a2ensite site2.conf
sudo systemctl reload apache2

四、使用Docker部署(推荐)

1. 安装Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

2. 使用Docker Compose部署多个网站

# docker-compose.yml
version: '3'
services:
  site1:
    image: nginx:alpine
    container_name: site1
    ports:
      - "8080:80"
    volumes:
      - ./site1/html:/usr/share/nginx/html
      - ./site1/nginx.conf:/etc/nginx/conf.d/default.conf

  site2:
    image: nginx:alpine
    container_name: site2
    ports:
      - "8081:80"
    volumes:
      - ./site2/html:/usr/share/nginx/html
      - ./site2/nginx.conf:/etc/nginx/conf.d/default.conf

  # 反向XX(统一入口)
  nginx-proxy:
    image: nginx:alpine
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./proxy/nginx.conf:/etc/nginx/nginx.conf

五、域名解析配置

在域名服务商处添加A记录:

site1.com  -> 你的服务器IP
site2.com  -> 你的服务器IP
www.site1.com  -> 你的服务器IP
www.site2.com  -> 你的服务器IP

六、安全建议

  1. 配置防火墙

    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
  2. 安装SSL证书(Let’s Encrypt)

    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d site1.com -d www.site1.com
  3. 定期备份

    # 备份网站数据
    tar -czf backup_$(date +%Y%m%d).tar.gz /var/www/

七、性能优化建议

  1. 启用缓存
  2. 使用CDN提速静态资源
  3. 配置数据库优化
  4. 启用Gzip压缩
  5. 设置合理的PHP-FPM配置

八、监控和维护

  1. 查看网站日志
    
    # Nginx访问日志
    tail -f /var/log/nginx/access.log

错误日志

tail -f /var/log/nginx/error.log


2. **监控服务器状态**
```bash
# 安装监控工具
sudo apt install htop
htop

选择建议

  • 初学者:从基于端口的部署开始
  • 正式项目:使用虚拟主机+域名
  • 需要隔离环境:使用Docker
  • 快速部署:考虑使用宝塔面板等管理工具

根据你的具体需求选择合适的方案,如果需要更详细的某个方案配置,我可以进一步解释。

云服务器