一个服务器部署多个网站?

在一个服务器上部署多个网站是完全可行的,这在Web开发和运维中是非常常见的做法。你可以通过不同的方式来实现这一点,具体取决于你使用的 服务器操作系统Web服务器软件(如 Nginx、Apache)、以及你希望托管的网站类型(静态页面、动态网站等)。

下面是一些常见的方式:


📌 一、使用虚拟主机(Virtual Host)

这是最常见的方式,适用于 Apache 和 Nginx 这类 Web 服务器软件。

✅ Apache 实现多网站部署

  1. 配置虚拟主机文件(通常位于 /etc/apache2/sites-available/
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName site1.com
    DocumentRoot /var/www/site1
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName site2.com
    DocumentRoot /var/www/site2
</VirtualHost>
  1. 启用站点并重启 Apache:
sudo a2ensite site1.conf
sudo a2ensite site2.conf
sudo systemctl restart apache2

✅ Nginx 实现多网站部署

  1. 创建两个配置文件,放在 /etc/nginx/sites-available/
server {
    listen 80;
    server_name site1.com;

    location / {
        root /var/www/site1;
        index index.html;
        try_files $uri $uri/ =404;
    }
}
server {
    listen 80;
    server_name site2.com;

    location / {
        root /var/www/site2;
        index index.html;
        try_files $uri $uri/ =404;
    }
}
  1. 创建软链接并重启 Nginx:
sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginx

📌 二、使用不同端口区分网站

如果你不想或不能使用域名,可以通过不同的端口号来区分多个网站。

例如:

  • http://your-server-ip:80 → 网站 A
  • http://your-server-ip:8080 → 网站 B

只需在 Nginx/Apache 中监听不同端口即可。


📌 三、使用 Docker 容器部署多个网站

使用 Docker 可以更灵活地部署多个网站,每个网站运行在独立容器中。

示例:运行两个 Nginx 容器分别映射到不同端口

docker run -d -p 80:80 --name website1 nginx
docker run -d -p 8080:80 --name website2 nginx

然后你可以将各自网站内容挂载进去。


📌 四、使用反向 + 多个后端服务(适合高级场景)

比如你有多个 Node.js、Python、PHP 应用,可以都跑在不同端口,再通过 Nginx 做反向根据域名转发请求。


📌 五、注意事项

注意事项 说明
域名解析 每个网站需要绑定自己的域名,并指向服务器 IP
防火墙 确保开放了相应端口(如 80、443)
HTTPS 可为每个网站申请 SSL 证书(推荐使用 Let’s Encrypt)
资源占用 多网站部署需注意服务器 CPU、内存、带宽限制

✅ 示例结构

目录结构建议如下:

/var/www/
├── site1/
│   └── index.html
├── site2/
│   └── index.html

🔐 补充:HTTPS 支持

使用 Let’s Encrypt 可以为每个网站自动申请免费证书,配合 Certbot 工具非常方便。

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d site1.com
sudo certbot --nginx -d site2.com

如果你告诉我你使用的系统(Linux/Windows)、Web服务器(Nginx/Apache)、以及网站类型(静态/动态),我可以提供更具体的部署方案 👍

是否需要我帮你写一个完整的配置示例?

未经允许不得转载:云计算HECS » 一个服务器部署多个网站?