一个VPS如何部署两个博客?_四种方法详解多站点搭建方案
如何在同一个VPS上搭建两个独立的博客?
| 方法类型 | 适用场景 | 技术复杂度 | 资源消耗 |
|---|---|---|---|
| 子目录部署 | 同主题/同技术栈博客 | 低 | 低 |
| 子域名部署 | 需要独立域名的多站点 | 中 | 中 |
| 容器化部署 | 不同技术栈的独立环境 | 高 | 高 |
| 反向代理配置 | 需要负载均衡的大流量站点 | 高 | 中 |
# 单VPS多博客部署指南
在有限的服务器资源下,通过合理配置可以在单个VPS上运行多个独立博客。以下是四种主流实现方案:
## 一、子目录部署方案
**操作说明**:
在网站根目录下创建子文件夹(如`/blog1`和`/blog2`),分别安装不同的博客系统。
**工具提示**:
- 推荐使用WordPress多站点功能或相同CMS系统
- 需配置`.htaccess`实现URL重写
```nginx
# Nginx配置示例
location /blog1 {
root /var/www/html;
try_files $uri/blog1/$uri /blog1/index.php$is_args$args;
}
```
## 二、子域名部署方案
**操作说明**:
通过`blog1.example.com`和`blog2.example.com`两个子域名指向不同站点目录。
**工具提示**:
- 需要DNS解析支持
- 推荐使用Let's Encrypt多域名证书
```bash
# 生成通配符证书示例
certbot certonly --manual --preferred-challenges dns -d *.example.com
```
## 三、容器化部署方案
**操作说明**:
使用Docker为每个博客创建独立容器环境。
**工具提示**:
- 需安装Docker和docker-compose
- 适合不同技术栈混搭(如WordPress+Hexo)
```yaml
# docker-compose.yml片段
services:
blog1:
image: wordpress:latest
ports:
- "8080:80"
blog2:
image: hexo
ports:
- "8081:4000"
```
## 四、反向代理方案
**操作说明**:
通过Nginx/Apache将不同域名请求转发到不同内部端口。
**工具提示**:
- 需要配置SSL终止
- 适合隐藏真实服务端口
```nginx
# Nginx反向代理配置
server {
listen 443 ssl;
server_name blog1.example.com;
location / {
proxy_pass http://localhost:3001;
}
}
```
## 常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 站点间CSS/JS加载错误 | 资源路径配置错误 | 检查绝对路径和CDN设置 |
| 数据库连接失败 | 端口冲突或权限不足 | 修改数据库端口或创建新用户 |
| 子域名SSL证书不匹配 | 证书未包含所有子域名 | 申请通配符证书或SAN证书 |
| 内存占用过高 | 未限制进程资源 | 配置cgroups或使用docker限制 |
建议根据实际需求选择方案:技术小白推荐子目录部署,需要完全隔离环境则选择容器化方案。注意定期备份数据库和文件系统,多站点部署会增加安全风险,建议配置独立的防火墙规则和监控告警。
发表评论