在阿里云服务器上部署多站点(即一台服务器托管多个网站),需要进行一系列的配置和设置。以下是详细的步骤和注意事项:
一、前期准备
-
购买并配置ECS实例
- 登录阿里云控制台,创建ECS(弹性计算服务)实例。
- 选择合适的操作系统(推荐 CentOS、Ubuntu 或 Alibaba Cloud Linux)。
- 配置安全组规则,开放常用端口:
- HTTP:80
- HTTPS:443
- SSH:22(建议修改为非默认端口以提高安全性)
- 其他如FTP、数据库等按需开放。
-
绑定公网IP或使用弹性IP(EIP)
- 确保服务器有公网IP,以便外部访问。
-
域名准备
- 购买多个域名,或使用子域名。
- 在阿里云域名控制台中,将每个域名的 DNS 解析指向服务器的公网IP(A记录)。
二、环境搭建
根据你的技术栈选择 Web 服务器软件,常见的有 Nginx 或 Apache。
示例:使用 Nginx 部署多站点
-
安装 Nginx
# CentOS/RHEL sudo yum install nginx -y sudo systemctl start nginx sudo systemctl enable nginx # Ubuntu/Debian sudo apt update sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx -
安装数据库和运行环境(可选)
- 如 PHP、MySQL、Node.js、Python 等,根据网站需求安装。
三、配置多站点(虚拟主机)
Nginx 使用 server 块来实现多站点。
-
创建网站目录
sudo mkdir -p /var/www/site1.com/html sudo mkdir -p /var/www/site2.com/html sudo chown -R $USER:$USER /var/www/site1.com/html sudo chown -R $USER:$USER /var/www/site2.com/html -
创建测试页面
echo "<h1>Welcome to site1.com</h1>" > /var/www/site1.com/html/index.html echo "<h1>Welcome to site2.com</h1>" > /var/www/site2.com/html/index.html -
配置 Nginx 虚拟主机
创建配置文件(以 site1.com 为例):
sudo vim /etc/nginx/conf.d/site1.com.conf内容如下:
server { listen 80; server_name site1.com www.site1.com; root /var/www/site1.com/html; index index.html index.php; location / { try_files $uri $uri/ =404; } }同样创建
site2.com.conf:server { listen 80; server_name site2.com www.site2.com; root /var/www/site2.com/html; index index.html index.php; location / { try_files $uri $uri/ =404; } } -
测试并重载 Nginx
sudo nginx -t # 检查配置是否正确 sudo systemctl reload nginx
四、SSL 证书配置(HTTPS)
使用 Let’s Encrypt 免费证书:
-
安装 Certbot:
sudo yum install certbot python3-certbot-nginx -y # CentOS sudo apt install certbot python3-certbot-nginx -y # Ubuntu -
为每个站点申请证书:
sudo certbot --nginx -d site1.com -d www.site1.com sudo certbot --nginx -d site2.com -d www.site2.comCertbot 会自动修改 Nginx 配置,启用 HTTPS 并设置自动续期。
五、其他重要设置
-
防火墙设置
- 确保系统防火墙(如 firewalld 或 ufw)放行 80 和 443 端口。
# CentOS sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
- 确保系统防火墙(如 firewalld 或 ufw)放行 80 和 443 端口。
-
安全加固
- 修改 SSH 端口,禁用 root 登录。
- 使用密钥登录代替密码。
- 定期更新系统和软件包。
-
日志管理
- 查看各站点日志:
/var/log/nginx/site1.com.access.log - 设置日志轮转(logrotate)避免磁盘占满。
- 查看各站点日志:
-
备份策略
- 定期备份网站文件和数据库。
- 可使用阿里云快照功能备份整个 ECS 系统盘。
-
性能优化
- 启用 Gzip 压缩。
- 配置缓存(浏览器缓存、反向X_X缓存)。
- 使用 CDN 提速静态资源(可结合阿里云CDN)。
六、可选:使用宝塔面板简化管理(适合新手)
- 安装宝塔面板:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh - 登录面板后,可通过图形界面添加站点、配置 SSL、管理数据库等。
总结
| 步骤 | 内容 |
|---|---|
| 1 | 购买 ECS 实例并配置安全组 |
| 2 | 域名解析到服务器 IP |
| 3 | 安装 Web 服务器(Nginx/Apache) |
| 4 | 配置虚拟主机(多 server 块) |
| 5 | 部署网站文件到各自目录 |
| 6 | 配置 SSL 证书(HTTPS) |
| 7 | 安全加固与日常维护 |
通过以上设置,你可以在一台阿里云服务器上安全、高效地运行多个网站。建议根据实际业务规模考虑负载均衡、分离数据库、使用对象存储(OSS)等进阶方案。
云小栈