在阿里云服务器上搭建多个网站,核心思路是通过 Web 服务器(如 Nginx/Apache)配置虚拟主机(Virtual Host),结合域名解析和 SSL 证书管理。以下是通用且安全的实操步骤(以 Ubuntu + Nginx 为例):
✅ 前提准备
- 已购买并登录阿里云 ECS 实例
- 已绑定至少一个公网 IP(可通过控制台查看)
- 已配置安全组规则:放行
80(HTTP)、443(HTTPS),必要时开放 SSH(22) - 拥有多个域名(可在阿里云 DNS 或第三方 DNS 服务商处管理)
📌 步骤详解
1️⃣ 安装 Web 服务器(以 Nginx 为例)
sudo apt update
sudo apt install nginx -y
# 可选:安装 PHP、MySQL 等依赖(如需动态站点)
sudo apt install php-fpm mysql-server -y
验证运行:
systemctl status nginx
curl http://localhost # 应看到默认欢迎页
2️⃣ 创建网站目录结构
为每个网站创建独立目录与配置:
sudo mkdir -p /var/www/site1/html
sudo mkdir -p /var/www/site2/html
sudo chown -R www-data:www-data /var/www/site1/html
sudo chown -R www-data:www-data /var/www/site2/html
💡 建议:每个网站用独立用户/目录隔离,提升安全性。
3️⃣ 编写 Nginx 虚拟主机配置
示例:site1.com → /var/www/site1/html
sudo nano /etc/nginx/sites-available/site1.com
内容示例:
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1/html;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
# PHP 支持(如需要)
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}
示例:site2.org → /var/www/site2/html
复制并重命名配置文件,修改 server_name 和 root 路径即可。
4️⃣ 启用配置 & 测试语法
# 创建软链接到 sites-enabled
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.org /etc/nginx/sites-enabled/
# 移除默认站点(避免冲突)
sudo rm /etc/nginx/sites-enabled/default
# 测试配置
sudo nginx -t
# 重载生效
sudo systemctl reload nginx
5️⃣ 配置域名解析(DNS)
在 阿里云云解析 DNS 或其他 DNS 服务商中:
- 为
site1.com添加A记录 → 指向你的 ECS 公网 IP - 为
site2.org同样添加A记录 - 如有
www子域,可加 CNAME 或另设 A 记录
⏱️ DNS 生效通常需 5~60 分钟,可用
ping site1.com验证是否解析到你的 IP。
6️⃣ 部署网站内容
将 HTML/PHP 文件上传至对应目录:
# 本地上传示例(使用 scp)
scp index.html root@your-ip:/var/www/site1/html/
访问测试:
http://site1.com
http://site2.org
7️⃣(推荐)配置 HTTPS(Let’s Encrypt)
使用 Certbot 自动申请免费证书:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d site1.com -d www.site1.com -d site2.org -d www.site2.org
✅ 自动完成:
- 生成证书
- 配置 Nginx 重定向 HTTP→HTTPS
- 设置自动续期(
/etc/cron.d/certbot)
🔐 安全加固建议
| 项目 | 操作 |
|---|---|
| 关闭默认站点 | rm /etc/nginx/sites-enabled/default |
| 限制目录权限 | chmod 755 /var/www/*, chmod 644 html/* |
| 隐藏版本号 | server_tokens off; 加入全局 http{} 块 |
| 防火墙 | 仅开放必要端口(ufw allow 'Nginx Full') |
| 定期更新 | apt upgrade && apt autoremove |
🔄 扩展场景
- 多协议支持:同一域名不同路径(如
site.com/blog)→ 用location /blog/配置 - 反向X_X后端服务:Nginx 作为网关转发到 Docker/Java 应用
- 容器化部署:Docker Compose + Nginx 多 host 配置(更灵活)
需要我提供:
- Apache 版本配置模板?
- WordPress 多站点一键部署脚本?
- 使用阿里云宝塔面板图形化操作指南?
欢迎告诉我你的具体需求 😊
CLOUD技术笔记