在腾讯云轻量应用服务器(Lighthouse)上同时运行多个网站,核心思路是:通过反向X_X(如 Nginx/Apache)或 Web 服务器虚拟主机(Virtual Host)实现基于域名/端口的多站点托管。由于轻量服务器通常资源有限(如1核2G),推荐使用轻量、高效的方案(首选 Nginx)。以下是详细、可落地的操作步骤(以 Ubuntu 22.04/CentOS 7+ 为例,Nginx 为主):
✅ 前提条件
- 已购买并初始化腾讯云轻量应用服务器(建议选择 Linux 系统镜像,如 Ubuntu 或 CentOS);
- 已为每个网站备案并解析好独立域名(国内必需!未备案域名无法通过腾讯云公网访问);
- 已开放安全组中对应端口(默认
80、443,如需 HTTP 访问必须放行 80;HTTPS 放行 443); - (可选但强烈推荐)已申请并配置 SSL 证书(腾讯云免费证书 + 自动续期)。
🌐 方案一:基于域名的多站点(推荐 ✅)
✅ 最常用、最规范的方式(用户访问
a.com和b.com显示不同网站)
步骤 1:安装 Nginx(若未预装)
# Ubuntu/Debian
sudo apt update && sudo apt install -y nginx
# CentOS/RHEL
sudo yum install -y epel-release && sudo yum install -y nginx
# 或(CentOS 8+/AlmaLinux/Rocky)
sudo dnf install -y nginx
启动并设为开机自启:
sudo systemctl enable nginx && sudo systemctl start nginx
步骤 2:为每个网站创建独立目录与文件
sudo mkdir -p /var/www/a.com/html /var/www/b.com/html
sudo chown -R $USER:$USER /var/www/a.com/html /var/www/b.com/html
sudo chmod -R 755 /var/www
# 示例首页(可替换为你的真实网站文件)
echo "<h1>Welcome to A.com</h1>" | sudo tee /var/www/a.com/html/index.html
echo "<h1>Welcome to B.com</h1>" | sudo tee /var/www/b.com/html/index.html
步骤 3:配置 Nginx 虚拟主机(Server Block)
⚠️ 注意:轻量服务器默认配置在
/etc/nginx/sites-available/(Ubuntu)或/etc/nginx/conf.d/(CentOS),推荐统一用conf.d/更简洁。
创建配置文件(以 CentOS 为例):
sudo nano /etc/nginx/conf.d/a.com.conf
内容如下:
server {
listen 80;
server_name a.com www.a.com;
root /var/www/a.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
同理创建 b.com.conf:
sudo nano /etc/nginx/conf.d/b.com.conf
server {
listen 80;
server_name b.com www.b.com;
root /var/www/b.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
✅ 验证配置 & 重载:
sudo nginx -t # 检查语法是否正确
sudo systemctl reload nginx # 平滑重载(不中断服务)
✅ 效果验证:
- 在浏览器访问
http://a.com→ 显示 "Welcome to A.com" - 访问
http://b.com→ 显示 "Welcome to B.com"
🔐 补充:启用 HTTPS(强烈建议)
- 在 腾讯云 SSL 证书控制台 免费申请证书(支持通配符/单域名);
- 下载证书(选择 Nginx 版本),上传到服务器(如
/etc/nginx/ssl/a.com/); - 修改
a.com.conf,添加 HTTPS 配置(监听 443,重定向 HTTP→HTTPS):# 在 a.com.conf 中追加(或替换原 server 块): server { listen 80; server_name a.com www.a.com; return 301 https://$server_name$request_uri; }
server {
listen 443 ssl http2;
server_name a.com www.a.com;
ssl_certificate /etc/nginx/ssl/a.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/a.com/privkey.pem;
root /var/www/a.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
> ✅ 同样操作 `b.com`,记得更新证书路径和 `server_name`。
---
### 🧩 方案二:基于端口的多站点(适合开发/测试)
> ❗ 不推荐生产环境(不友好、难记忆、SEO 不友好),但可用于临时调试
例如:
- `http://your-server-ip:8080` → 网站 A
- `http://your-server-ip:8081` → 网站 B
只需在 Nginx 中配置不同 `listen` 端口:
```nginx
server {
listen 8080;
root /var/www/site-a;
...
}
server {
listen 8081;
root /var/www/site-b;
...
}
⚠️ 注意:需在腾讯云安全组中放行 8080、8081 等自定义端口!
🐘 进阶场景(可选)
| 场景 | 推荐方案 |
|---|---|
| 运行 PHP 网站(如 WordPress) | 安装 PHP-FPM + Nginx FastCGI:sudo apt install php-fpm php-mysql,并在 server 块中添加 location ~ .php$ { ... fastcgi_pass unix:/run/php/php8.1-fpm.sock; } |
| 运行 Node.js 应用(如 Vue/React SSR、Express) | 用 PM2 管理进程,Nginx 反向X_X到 localhost:3000:location / { proxy_pass http://127.0.0.1:3000; proxy_set_header ... } |
| 运行 Python Flask/Django | 使用 Gunicorn + Nginx 反向X_X(类似 Node.js) |
| 一键部署多个应用? | 腾讯云轻量提供「应用镜像」(如 WordPress、Typecho、Discuz),但同一实例只能选一个镜像初始化;多站仍需手动配置或使用 Docker(见下) |
🐳 方案三(高级):Docker 多容器隔离(资源可控、环境干净)
适合技术较强用户,避免依赖冲突:
# 安装 Docker(官方脚本)
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER && newgrp docker
# 启动多个网站(示例)
docker run -d --name site-a -p 8080:80 -v /var/www/a.com/html:/usr/share/nginx/html nginx
docker run -d --name site-b -p 8081:80 -v /var/www/b.com/html:/usr/share/nginx/html nginx
再用 Nginx 作为统一入口反向X_X(根据域名分发到不同容器端口)。
✅ 优势:彻底隔离、快速备份/迁移;⚠️ 缺点:学习成本略高,内存占用稍增。
🚫 常见问题排查
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 访问域名显示 Nginx 默认页 | server_name 未匹配 / 配置未生效 |
检查 nginx -t、确认 conf.d/*.conf 被 include(Ubuntu 默认有,CentOS 默认包含) |
| 403 Forbidden | 目录权限不足或 SELinux(CentOS)启用 | sudo chmod -R 755 /var/www/*;CentOS 执行 sudo setsebool -P httpd_read_user_content 1 |
| 无法访问(超时) | 安全组未放行 80/443,或防火墙(ufw/firewalld)拦截 | sudo ufw status / sudo firewall-cmd --list-all;腾讯云控制台检查安全组规则 |
| 域名解析正常但打不开 | DNS 未生效(等待 10min~24h)、或未完成 ICP 备案(国内强制) | 用 ping a.com 和 curl -I http://a.com 测试;确认备案号已在腾讯云接入 |
✅ 总结:最佳实践推荐
| 项目 | 推荐方式 |
|---|---|
| 操作系统 | Ubuntu 22.04 LTS(社区支持好、文档丰富) |
| Web 服务器 | Nginx(轻量、高性能、配置简洁) |
| 多站模式 | 基于域名的 Virtual Host(方案一) ✅ |
| HTTPS | 腾讯云免费 SSL + Nginx 自动续期(可用 Certbot 或手动更新) |
| 动态网站 | PHP-FPM(WordPress等)或 Nginx 反代 Node/Python(PM2/Gunicorn) |
| 新手友好 | 直接使用腾讯云「轻量应用服务器」控制台 → 「应用管理」→ 一键部署 WordPress,再按本文扩展第二站点 |
需要我为你:
- ✅ 生成完整的 Nginx 多站点配置模板(含 HTTPS)?
- ✅ 提供 WordPress + PHP + MySQL 一键多站部署脚本?
- ✅ 指导如何用 Certbot 自动续签腾讯云证书?
- ✅ 输出 Docker Compose 多站编排文件?
欢迎随时告诉我你的具体需求(比如你用的是什么系统、想部署什么程序、有几个域名),我可以为你定制完整命令清单 👇
云小栈