在轻量应用服务器(如腾讯云 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.com和blog.test.com的 A 记录指向你的服务器公网 IP
(注意:子域名需提前在域名服务商处添加 CNAME 或 A 记录)
💡 提示:若使用 HTTPS,可结合 Let’s Encrypt 免费证书(见下方扩展)。
🔁 方案二:基于端口的多站(适合内部测试或无多域名场景)
例如:
http://your-ip:8080→ 网站 Ahttp://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 容器化多站等),欢迎告诉我你的技术栈或使用场景,我可提供定制化指南 😊
CLOUD技术笔记