宝塔面板多站点配置,一个服务器跑 10 个网站
一台服务器只跑一个网站太浪费了。
今天我演示如何在宝塔面板中配置多站点,一台服务器轻松跑10个网站,而且每个网站独立运行、互不干扰。
1. 准备工作:确认服务器与宝塔环境
在执行多站点配置前,先检查几项基本条件。
- 服务器配置:至少2核CPU、4G内存,硬盘建议40G以上(10个静态网站2核4G够用,如果包含动态站点或大量并发需提高配置)。
- 操作系统:推荐CentOS 7/8或Ubuntu 20.04+,已安装宝塔面板(安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh)。 - 域名准备:每个站点需要一个独立域名或子域名,并做好A记录解析到服务器IP。若本地测试可用IP+端口,但生产环境必须用域名。
- 宝塔环境:已安装Nginx(或Apache,这里以Nginx为例)、MySQL、PHP(建议编译安装多PHP版本备用)。
2. 添加第一个站点(以example1.com为例)
登录宝塔面板后台,左侧菜单点击网站,然后点击添加站点。
- 域名:输入
example1.com(不需要www,后续可添加),如需同时支持www,在“域名”框内按回车再输入www.example1.com。 - 根目录:默认自动生成
/www/wwwroot/example1.com,也可以自定义(注意权限)。 - 数据库、FTP:按需勾选,如果建站程序需要数据库就创建;FTP方便文件管理。
- PHP版本:选择该站点对应的PHP版本(如静态网站选纯静态即可,WordPress等选7.4或8.0)。
点击“提交”后,站点就创建好了。
此时访问example1.com,可以看到宝塔默认的欢迎页面。
3. 批量创建剩余站点并区分资源
接下来重复上面的操作,添加example2.com到example10.com。
为方便管理,建议按业务命名根目录,如 /www/wwwroot/site2。
- 端口复用:所有站点默认都用80(HTTP)和443(HTTPS),通过域名区分。
- 资源隔离:每个站点的PHP进程、日志、数据库都是独立的。如果某些站点消耗大,可以在站点设置中限制PHP连接数和流量。
- SSL证书:站点创建后,进入站点设置 -> SSL,可申请Let's Encrypt免费证书,每个域名独立签发,申请后自动配置HTTPS。
- Nginx配置调整:如果某些站点需要特殊的伪静态规则(如ThinkPHP、Laravel),到站点设置 -> 伪静态选择对应模板或手动编写。
4. 常见问题与避坑指南
4.1 域名解析未生效
添加完站点后访问域名仍显示“无法访问”,多数原因是DNS还未解析或解析未生效。
可以先用ping example1.com看是否指向服务器IP。
如果本地测试,修改本机hosts文件临时指定。
4.2 默认站点冲突
如果用户访问了一个未绑定的域名(如直接访问服务器IP),会显示第一个站点的内容。
建议设置一个默认站点返回404。
进入宝塔面板 -> 站点 -> 设置 -> 默认站点,勾选“关闭默认站点”或指定一个空目录的站点。
4.3 资源不足导致站点响应慢
同时运行10个站点,如果内存或CPU爆满,需调整PHP-FPM进程数。
进入软件商店 -> 已安装 -> PHP设置 -> 性能调整,适当降低max_children。
也可以开启OPcache减少CPU压力。
4.4 端口/SSL冲突
如果某站点绑定SSL后其他站点失效,检查Nginx配置中server_name是否写错或重复。
宝塔会为每个站点独立生成配置文件,一般不易冲突。
5. 验证所有站点正常访问
完成配置后,打开浏览器分别访问10个域名(或子域名)。
每个站点应该显示独立的内容(宝塔默认页或你上传的网站文件)。
- 命令行验证:用curl测试每个域名,
curl -I http://example1.com应返回200状态码。 - 查看日志:进入宝塔面板 -> 站点 -> 每个站点设置 -> 网站日志,可以看到访问记录,确认流量已分发正确。
- 压力测试:如果怀疑性能,可以用
ab命令简单压测,但生产环境推荐使用专业工具。
若一切正常,一台服务器跑10个网站就实现了。
后续如需增加站点,继续重复添加步骤,注意监控服务器资源即可。
遇到异常优先检查域名解析、站点绑定和资源限制。