在轻量应用服务器(如腾讯云轻量应用服务器、阿里云轻量应用服务器等)上搭建多个网站,核心思路是:一台服务器 + 一个 Web 服务器(如 Nginx/Apache)+ 多个域名/端口/路径 + 反向X_X或虚拟主机配置。以下是清晰、安全、可落地的详细步骤(以 Nginx + Ubuntu 22.04(主流轻量系统) 为例):
✅ 前提条件
- 已购买并初始化轻量应用服务器(推荐选择带公网 IP 的实例);
- 已备案(中国大陆地区访问需完成ICP 备案,否则域名无法解析到国内服务器);
- 已将多个域名(如
site1.com、site2.net)DNS 解析到服务器公网 IP(A 记录); - 确保服务器安全组/防火墙放行
80(HTTP)、443(HTTPS)端口(及可选的22)。
🌐 方式一:基于域名的多站点(推荐 ✅)
最常用、最标准的方式——通过 Nginx 的 server 块按 server_name 区分不同网站。
步骤 1:安装 Nginx(若未预装)
sudo apt update
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
步骤 2:创建网站目录与示例页面
# 创建两个网站根目录
sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.net/html
# 写入简单首页(测试用)
echo "<h1>Welcome to Site1!</h1>" | sudo tee /var/www/site1.com/html/index.html
echo "<h1>Welcome to Site2!</h1>" | sudo tee /var/www/site2.net/html/index.html
# 设置权限(确保 Nginx 可读)
sudo chown -R $USER:$USER /var/www/site1.com/html
sudo chown -R $USER:$USER /var/www/site2.net/html
sudo chmod -R 755 /var/www
步骤 3:配置 Nginx 虚拟主机(Server Blocks)
⚠️ 注意:轻量服务器默认配置通常在
/etc/nginx/sites-available/,使用符号链接启用。
# 创建 site1 配置
sudo nano /etc/nginx/sites-available/site1.com
内容如下:
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
# 创建 site2 配置
sudo nano /etc/nginx/sites-available/site2.net
server {
listen 80;
server_name site2.net www.site2.net;
root /var/www/site2.net/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
步骤 4:启用站点 & 测试配置
# 创建软链接启用(相当于 Apache 的 a2ensite)
sudo ln -sf /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -sf /etc/nginx/sites-available/site2.net /etc/nginx/sites-enabled/
# 删除默认站点(可选,避免冲突)
sudo rm -f /etc/nginx/sites-enabled/default
# 检查语法 & 重启
sudo nginx -t
sudo systemctl reload nginx
✅ 此时访问 http://site1.com 和 http://site2.net 即可看到不同页面。
🔒 进阶:为每个网站配置 HTTPS(强烈建议)
使用 Certbot + Let’s Encrypt 免费证书(需域名已解析且开放 80/443):
sudo apt install certbot python3-certbot-nginx -y
# 为 site1 申请证书(自动修改 Nginx 配置)
sudo certbot --nginx -d site1.com -d www.site1.com
# 为 site2 申请证书
sudo certbot --nginx -d site2.net -d www.site2.net
✅ Certbot 会自动:
- 获取证书并存放在
/etc/letsencrypt/live/... - 修改 Nginx 配置添加
listen 443 ssl和证书路径 - 自动重定向 HTTP → HTTPS(可选)
💡 提示:证书 90 天过期,Certbot 已配置自动续期(
systemctl list-timers | grep certbot查看)。
🧩 其他实用方式(按需选用)
| 方式 | 适用场景 | 简要说明 |
|---|---|---|
| 端口区分 | 无域名/测试环境 | 如 http://IP:8080 → site1,http://IP:8081 → site2;Nginx listen 8080; 即可 |
| 子目录部署 | 单域名下多项目(如 example.com/blog, example.com/app) |
使用 location /blog { alias /var/www/blog/; } |
| 反向X_X(Node.js/Python 等) | 后端服务非静态网站 | location /api { proxy_pass http://127.0.0.1:3000; } |
| Docker 容器化 | 隔离性强、环境复杂 | 为每个网站运行独立 Nginx 容器 + nginx-proxy(如 jwilder/nginx-proxy) |
🛡️ 安全与运维建议
- ✅ 定期更新系统:
sudo apt update && sudo apt upgrade -y - ✅ 禁用 root 密码登录:改用 SSH 密钥 +
PermitRootLogin no - ✅ 设置 UFW 防火墙:
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' # 开放 80/443 sudo ufw enable - ✅ 网站日志分离(便于排查):
# 在每个 server 块中添加 access_log /var/log/nginx/site1.access.log; error_log /var/log/nginx/site1.error.log; - ✅ 监控基础资源:
htop、df -h、journalctl -u nginx -n 50
❌ 常见问题速查
| 现象 | 可能原因 | 解决 |
|---|---|---|
| 访问域名显示 Nginx 默认页 | sites-enabled 中存在 default,或 server_name 不匹配 |
sudo rm /etc/nginx/sites-enabled/default,检查 server_name 是否含空格/大小写错误 |
502 Bad Gateway |
后端服务(如 Node)未启动,或 proxy_pass 地址错误 |
curl http://127.0.0.1:3000 测试后端,检查 Nginx 日志 tail -f /var/log/nginx/error.log |
| HTTPS 证书申请失败 | DNS 未生效 / 防火墙拦截 80 端口 / 域名未备案(国内) | dig A site1.com 检查解析;telnet site1.com 80 测试连通性;确认备案状态 |
需要我为你:
- ✅ 生成完整的 Nginx 配置模板(含 HTTPS/HTTP 强制跳转)
- ✅ 编写一键部署脚本(自动建站+证书)
- ✅ 演示如何用 Docker 部署多个 WordPress 网站
- ✅ 针对阿里云/腾讯云轻量控制台的备案指引
欢迎随时告诉我你的具体需求(比如你用的是哪家云?已有域名?想跑什么程序?),我可以为你定制方案 👇
云小栈