如何在单个VPS上部署多个网站?
| 配置项 |
推荐参数 |
说明 |
| VPS内存 |
≥2GB |
每个网站约需200-500MB内存,2GB可支持4-10个中小型网站 |
| 操作系统 |
Ubuntu/CentOS |
Linux系统更适合多网站部署,资源占用更低 |
| Web服务器 |
Nginx/Apache |
Nginx更适合高并发,Apache配置更简单 |
| 数据库 |
MySQL/MariaDB |
建议使用独立数据库服务,或为不同网站分配不同数据库 |
| 域名绑定方式 |
虚拟主机/反向代理 |
通过servername配置实现单IP多域名访问 |
单VPS多网站部署完整指南
核心部署方法对比
| 方法 |
适用场景 |
技术复杂度 |
资源消耗 |
| 虚拟主机 |
同类型网站 |
低 |
中 |
| 反向代理 |
不同技术栈网站 |
中 |
低 |
| Docker容器 |
隔离性要求高的环境 |
高 |
高 |
详细操作步骤
1. 环境准备
- 操作系统安装:建议选择Ubuntu 22.04 LTS
sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx curl wget
2. Nginx多站点配置
创建站点配置文件:
sudo nano /etc/nginx/sites-available/site1.conf
典型配置示例:
server {
listen 80;
servername www.site1.com;
root /var/www/site1;
index index.html;
}
启用配置并测试:
sudo ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl restart nginx
3. 数据库隔离方案
为不同网站创建独立数据库用户:
CREATE USER 'site1user'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON site1db.* TO 'site1user'@'localhost';
常见问题解决方案
| 问题现象 |
可能原因 |
解决方法 |
| 网站间资源占用不均 |
未设置资源限制 |
使用cgroups限制进程资源 |
| 配置修改后不生效 |
Nginx未重载配置 |
执行nginx -s reload |
| 数据库连接失败 |
权限配置错误 |
检查GRANT语句和防火墙设置 |
| HTTPS证书冲突 |
共用SSL证书 |
为每个域名申请独立证书 |
性能优化建议
- 启用OPcache提升PHP执行效率
- 配置Redis作为对象缓存
- 使用Cloudflare CDN减少服务器负载
- 定期清理日志文件(建议设置logrotate)
发表评论