在阿里云轻量应用服务器上部署多个网站是完全可行的,可以通过以下两种主流方式实现,具体选择取决于你的技术栈和需求:
方案一:基于虚拟主机(单服务器多域名)
适用场景:所有网站共享同一台服务器资源,使用相同技术栈(如全部为 PHP 或静态网站)。
步骤详解:
-
准备环境
- 安装 Web 服务器(推荐 Nginx 或 Apache):
# Nginx sudo apt update && sudo apt install nginx # Apache sudo apt update && sudo apt install apache2 - 安装 PHP(如需):
sudo apt install php-fpm php-mysql
- 安装 Web 服务器(推荐 Nginx 或 Apache):
-
配置网站目录
- 为每个网站创建独立目录,例如:
sudo mkdir -p /var/www/site1/html sudo mkdir -p /var/www/site2/html - 设置权限:
sudo chown -R $USER:$USER /var/www/site1/html sudo chmod -R 755 /var/www
- 为每个网站创建独立目录,例如:
-
Nginx 虚拟主机配置
-
为每个站点创建配置文件(
/etc/nginx/sites-available/site1.conf):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; } } - 启用配置并测试:
sudo ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
-
-
Apache 虚拟主机配置
- 创建配置文件(
/etc/apache2/sites-available/site1.conf):<VirtualHost *:80> ServerName site1.com ServerAlias www.site1.com DocumentRoot /var/www/site1/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> - 启用站点:
sudo a2ensite site1.conf sudo systemctl reload apache2
- 创建配置文件(
-
域名解析
- 在阿里云 DNS 或域名注册商处,将所有域名 A 记录指向服务器 IP。
方案二:基于 Docker(隔离环境)
适用场景:需要环境隔离(如不同 PHP 版本)、快速迁移或扩展。
步骤示例:
-
安装 Docker
curl -fsSL https://get.docker.com | sudo sh sudo systemctl enable docker -
为每个网站创建容器
- 使用 Nginx 官方镜像运行静态网站:
docker run -d --name site1 -v /path/to/site1/html:/usr/share/nginx/html -p 8080:80 nginx:alpine - 使用 WordPress 镜像(动态网站):
docker run -d --name site2 -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_USER=user -e WORDPRESS_DB_PASSWORD=password -p 8081:80 wordpress:php8.1
- 使用 Nginx 官方镜像运行静态网站:
-
反向X_X统一端口
- 使用 Nginx 作为反向X_X,将不同域名映射到不同容器端口:
server { listen 80; server_name site1.com; location / { proxy_pass http://localhost:8080; } }
- 使用 Nginx 作为反向X_X,将不同域名映射到不同容器端口:
关键注意事项
-
HTTPS 支持
使用 Certbot 免费证书:sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d site1.com -d www.site1.com -
资源监控
- 通过
htop或阿里云控制台监控 CPU/内存使用情况。 - 轻量服务器配置较低,建议优化网站资源(如缓存、CDN)。
- 通过
-
备份策略
- 定期备份网站数据和数据库:
tar -czvf backup_site1.tar.gz /var/www/site1/html mysqldump -u user -p database > site1_db.sql
- 定期备份网站数据和数据库:
-
防火墙设置
开放必要端口:sudo ufw allow 80/tcp sudo ufw allow 443/tcp
常见问题
- 访问 403 错误:检查目录权限和
index文件是否存在。 - 端口冲突:确保每个容器或服务监听不同端口。
- 性能瓶颈:数据库密集型网站建议使用阿里云 RDS 分离负载。
通过上述方法,你可以高效地在单台轻量服务器上托管多个网站。如需更复杂的架构(如负载均衡),可后续升级到阿里云 ECS + SLB。
云服务器