如何在轻量应用服务器上搭建多个网站?

在轻量应用服务器(如腾讯云 Lighthouse、阿里云轻量应用服务器等)上搭建多个网站,核心思路是:一个服务器 + 多域名/端口 + 反向X_X或虚拟主机配置。以下是通用且实用的方案(以 Nginx 为例,适用于 Linux 系统):


✅ 前提条件

  • 已购买并登录轻量应用服务器(Linux 系统,推荐 Ubuntu/CentOS)
  • 已安装 Web 服务软件(如 Nginx/Apache + PHP/Node.js 等)
  • 已配置好域名解析(A 记录指向服务器公网 IP)
  • 了解防火墙/安全组规则(开放 80/443 端口)

🛠 方案一:基于域名的虚拟主机(推荐,最常用)

每个网站使用独立域名,通过 Nginx 的 server 块区分。

步骤 1:准备网站目录

sudo mkdir -p /var/www/site1
sudo mkdir -p /var/www/site2
# 为每个目录设置权限
sudo chown -R www-data:www-data /var/www/site1
sudo chown -R www-data:www-data /var/www/site2

步骤 2:创建 Nginx 站点配置

以 Ubuntu 为例,在 /etc/nginx/sites-available/ 下创建配置:

site1.conf(对应 example.com)

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/site1;
    index index.html index.php;

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

    # PHP 支持示例(如使用 PHP-FPM)
    location ~ .php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

site2.conf(对应 blog.test.com)

server {
    listen 80;
    server_name blog.test.com;
    root /var/www/site2;
    index index.html;

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

步骤 3:启用站点并测试配置

# 软链接到 sites-enabled
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 rm /etc/nginx/sites-enabled/default

# 测试配置语法
sudo nginx -t

# 重载 Nginx
sudo systemctl reload nginx

步骤 4:配置 DNS 解析

  • example.comblog.test.com 的 A 记录指向你的服务器公网 IP
    (注意:子域名需提前在域名服务商处添加 CNAME 或 A 记录)

💡 提示:若使用 HTTPS,可结合 Let’s Encrypt 免费证书(见下方扩展)。


🔁 方案二:基于端口的多站(适合内部测试或无多域名场景)

例如:

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

Nginx 配置示例:

server {
    listen 8080;
    server_name localhost;
    root /var/www/site1;
}

server {
    listen 8081;
    server_name localhost;
    root /var/www/site2;
}

⚠️ 注意:需在安全组中额外放行 8080/8081 端口;用户访问需带端口号,体验较差,仅建议临时使用。


🔐 补充:HTTPS 一键部署(Let’s Encrypt)

推荐使用 Certbot 自动申请并续期证书:

# 安装 Certbot + Nginx 插件
sudo apt update && sudo apt install certbot python3-certbot-nginx

# 为每个域名申请证书(会自动修改 Nginx 配置并重载)
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot --nginx -d blog.test.com

✅ 自动完成:

  • 获取 SSL 证书
  • 配置 HTTP→HTTPS 跳转
  • 设置自动续期(cron 定时任务已内置)

📌 最佳实践建议

项目 建议
资源隔离 不同网站用不同系统用户运行(如 user1, user2),避免互相影响
日志管理 为每个站点单独配置 access.log/error.log,便于排查
备份策略 定期备份网站代码 + 数据库(可用脚本自动化)
监控告警 接入云厂商监控(如 CPU/内存/磁盘告警)+ 网站可用性检测
安全防护 关闭不必要的服务;限制 SSH 登录;安装 fail2ban

❓ 常见问题

Q:能否在同一端口跑多个网站?
A:可以!只要 server_name 不同,Nginx 就能根据请求头中的 Host 字段路由到对应站点(即“名称虚拟主机”)。

Q:轻量应用服务器有数量限制吗?
A:通常无硬性限制,但受限于服务器配置(CPU/内存/带宽)。若网站较多,建议评估性能瓶颈。

Q:需要每台网站独立 IP 吗?
A:不需要!现代 Web 服务器都支持 SNI(Server Name Indication),单 IP 可承载数百个 HTTPS 站点。


如需具体某一步的详细命令(如 PHP 环境安装、WordPress 批量部署、Docker 容器化多站等),欢迎告诉我你的技术栈或使用场景,我可提供定制化指南 😊

云服务器