在阿里云轻量应用服务器上部署多个网站可以通过以下步骤实现,主要涉及Web服务器配置、域名解析和资源分配。以下是详细方案:
一、准备工作
-
服务器环境
- 确保已安装Web服务器(如Nginx/Apache)、数据库(如MySQL)和PHP(如需)。
- 推荐使用宝塔面板(可选),简化管理。
-
域名准备
- 每个网站需独立的域名(如
site1.com和site2.com),或子域名(如blog.site1.com)。
- 每个网站需独立的域名(如
-
服务器资源
- 轻量服务器配置有限,需合理分配CPU、内存和带宽。
二、部署方案(以Nginx为例)
方案1:基于不同域名的虚拟主机
-
上传网站文件
- 为每个网站创建独立目录,例如:
/var/www/site1 /var/www/site2
- 为每个网站创建独立目录,例如:
-
配置Nginx虚拟主机
-
在
/etc/nginx/conf.d/下为每个网站创建配置文件(如site1.conf):server { listen 80; server_name site1.com www.site1.com; root /var/www/site1; index index.html index.php; # 其他配置(如PHP支持、日志等) location ~ .php$ { include fastcgi_params; fastcgi_pass unix:/run/php/php8.0-fpm.sock; } } - 重复类似配置为
site2.com创建文件。
-
-
重启Nginx
sudo nginx -t # 测试配置 sudo systemctl restart nginx
方案2:基于端口的访问(不推荐生产环境)
- 修改Nginx配置,监听不同端口(如8080):
server { listen 8080; server_name localhost; root /var/www/site2; } - 访问时需带端口号:
http://site2.com:8080
三、域名与SSL证书
-
域名解析
- 在阿里云DNS控制台,将每个域名A记录指向服务器IP。
-
HTTPS配置(可选)
- 使用Let’s Encrypt免费证书,通过Certbot自动配置:
sudo certbot --nginx -d site1.com -d www.site1.com
- 使用Let’s Encrypt免费证书,通过Certbot自动配置:
四、高级配置
-
资源隔离
- 对高流量网站,可使用Docker容器隔离环境。
-
数据库分离
- 为每个网站创建独立MySQL用户和数据库:
CREATE DATABASE site1_db; CREATE USER 'site1_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON site1_db.* TO 'site1_user'@'localhost';
- 为每个网站创建独立MySQL用户和数据库:
-
日志管理
- 在Nginx配置中指定独立日志文件:
access_log /var/log/nginx/site1_access.log; error_log /var/log/nginx/site1_error.log;
- 在Nginx配置中指定独立日志文件:
五、常见问题
-
403 Forbidden
- 检查目录权限:
chmod -R 755 /var/www/site1。
- 检查目录权限:
-
Nginx冲突
- 确保无重复监听端口或域名。
-
性能瓶颈
- 使用缓存(如Redis)或CDN优化静态资源。
六、总结
- 多域名虚拟主机是最佳实践,需合理规划目录和配置。
- 轻量服务器适合中小流量网站,高并发场景建议升级配置或负载均衡。
通过以上步骤,可高效部署多个网站并确保稳定运行。
云服务器