在腾讯云服务器上部署多个网站是常见的需求,可以通过以下几种方式实现。以下是详细的步骤和建议,适用于 Linux 系统(如 CentOS、Ubuntu)上使用 Nginx 或 Apache 作为 Web 服务器的场景。
一、准备工作
-
购买腾讯云服务器(CVM)
- 登录 腾讯云控制台
- 购买一台云服务器(CVM),推荐选择 Linux 系统(如 Ubuntu 20.04 或 CentOS 7+)
-
购买并备案域名(可选)
- 每个网站建议绑定一个独立域名(如
site1.com、site2.com) - 域名需在腾讯云完成实名认证和备案(我国大陆地区)
- 每个网站建议绑定一个独立域名(如
-
开放安全组端口
- 在腾讯云控制台中,确保安全组规则开放了:
- HTTP:端口 80
- HTTPS:端口 443
- SSH:端口 22(用于远程连接)
- 在腾讯云控制台中,确保安全组规则开放了:
二、部署多个网站的方法(以 Nginx 为例)
方法 1:基于域名的虚拟主机(推荐)
这是最常见的方式,通过不同域名访问不同的网站。
步骤:
- 安装 Nginx
# Ubuntu/Debian
sudo apt update
sudo apt install nginx -y
# CentOS/RHEL
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
- 创建网站目录
sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.com/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.com/html/index.html
- 设置目录权限
sudo chown -R www-data:www-data /var/www/site1.com/html
sudo chown -R www-data:www-data /var/www/site2.com/html
- 配置 Nginx 虚拟主机
创建两个配置文件:
# 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.com 配置:
sudo nano /etc/nginx/sites-available/site2.com
server {
listen 80;
server_name site2.com www.site2.com;
root /var/www/site2.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
- 启用站点(创建软链接)
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
- 测试并重启 Nginx
sudo nginx -t # 测试配置是否正确
sudo systemctl reload nginx
-
域名解析
- 登录腾讯云 DNS 控制台(DNSPod)
- 将
site1.com和site2.com的 A 记录指向你的服务器公网 IP
-
访问测试
- 浏览器访问
http://site1.com和http://site2.com,应显示不同内容
- 浏览器访问
方法 2:基于端口的不同网站
如果你没有多个域名,可以用不同端口区分网站。
例如:
http://your-ip:8080→ 网站1http://your-ip:8081→ 网站2
Nginx 配置示例:
server {
listen 8080;
server_name your-ip;
root /var/www/site1.com/html;
index index.html;
}
server {
listen 8081;
server_name your-ip;
root /var/www/site2.com/html;
index index.html;
}
⚠️ 注意:需在安全组中放行 8080、8081 等端口。
方法 3:基于子域名(如 blog.yoursite.com)
类似方法1,只需修改 server_name:
server {
listen 80;
server_name blog.yoursite.com;
root /var/www/blog/html;
index index.html;
}
然后在 DNS 中添加子域名解析记录。
三、部署 HTTPS(可选但推荐)
使用 Let’s Encrypt 免费证书:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d site1.com -d www.site1.com
Certbot 会自动配置 SSL 并更新 Nginx。
四、其他注意事项
-
资源监控
- 多个网站会占用更多 CPU、内存,建议选择合适配置的服务器(如 2核4G 起步)
-
反向动态应用
- 如果网站是 Node.js、Python(Django/Flask)、Java 等,可使用 Nginx 反向:
location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; }
- 如果网站是 Node.js、Python(Django/Flask)、Java 等,可使用 Nginx 反向:
-
使用宝塔面板(可视化管理)
- 如果不熟悉命令行,可安装 宝塔面板:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh - 安装后通过 Web 界面一键创建网站、配置 SSL、数据库等。
- 如果不熟悉命令行,可安装 宝塔面板:
总结
| 方式 | 适用场景 |
|---|---|
| 多域名 + Nginx | 推荐,专业、SEO友好 |
| 多端口 | 测试或内网使用 |
| 子域名 | 同一主站下的多个服务 |
| 宝塔面板 | 新手友好,图形化操作 |
如需进一步帮助(如部署 WordPress、Node.js 应用等),可继续提问!
CLOUD技术博