建立第二个虚拟主机

新建虚拟主机需复制主配置模板,修改监听端口及根目录路径,重启服务生效,实现多站点

前期准备

环境确认

项目 要求 说明
操作系统 Linux(推荐CentOS/Ubuntu) Windows需额外安装工具链
Web服务器 Apache HTTP Server 默认支持基于名称的虚拟主机
域名解析 已绑定至服务器公网IP 需提前完成A记录配置
根目录结构 /var/www/html为主站目录 新站点建议新建独立目录

必要权限

  • 使用sudo或切换至root用户执行系统级操作
  • 确保目标目录可被Web服务器进程读写(如apache/www-data用户)

核心配置步骤(以Apache为例)

编辑主配置文件

路径:/etc/httpd/conf/httpd.conf(CentOS)
/etc/apache2/apache2.conf(Ubuntu)

建立第二个虚拟主机

关键修改点:

# 启用名称型虚拟主机
NameVirtualHost :80
# 保留默认主机定义(防止未匹配请求失败)
<VirtualHost :80>
    DocumentRoot "/var/www/html"
    ServerName www.example.com
    ErrorLog logs/default-error_log
    CustomLog logs/default-access_log common
</VirtualHost>
# 新增第二个虚拟主机配置
<VirtualHost :80>
    DocumentRoot "/var/www/secondsite"   # 新站点根目录
    ServerName second.example.com        # 对应域名
    ErrorLog logs/second-error_log       # 独立错误日志
    CustomLog logs/second-access_log common # 独立访问日志
</VirtualHost>

创建站点目录及测试页

# 创建目录并设置权限
mkdir -p /var/www/secondsite
chown -R apache:apache /var/www/secondsite  # CentOS
# chown -R www-data:www-data /var/www/secondsite  # Ubuntu
# 生成测试页面
echo "<h1>Second Virtual Host Working!</h1>" > /var/www/secondsite/index.html

更新hosts文件(本地测试用)

编辑 /etc/hosts 添加:

168.1.100 second.example.com  # 替换为实际服务器IP

重启服务使配置生效

systemctl restart httpd      # CentOS
# systemctl restart apache2   # Ubuntu

高级配置选项

功能 实现方式 示例代码片段
SSL加密 启用mod_ssl模块 + 443端口监听 <VirtualHost :443>
负载均衡 结合mod_proxy实现后端分发 ProxyPass balancer://backends/
PHP版本隔离 FPM池化管理 SetHandler "proxy:unix:/run/php/php8.0-fpm.sock|fcgi://localhost"
访问控制 .htaccess文件+AllowOverride指令 <Directory "/var/www/secondsite"> AllowOverride All </Directory>

常见问题与解答

Q1: 为什么输入新域名仍跳转到主站?

原因分析:

建立第二个虚拟主机

  • DNS未正确解析到服务器IP → 检查域名服务商的A记录
  • 防火墙阻断了80/443端口 → 执行firewall-cmd --permanent --add-service=http后重载防火墙
  • 配置文件顺序错误 → 确保新虚拟主机定义在主站之后

解决方案:

# 检查端口开放状态
ss -tuln | grep :80
# 检查SELinux状态(CentOS特有)
getsebool httpd_can_network_connect → 如果为off则执行 setsebool -P httpd_can_network_connect on

Q2: 如何实现同一台服务器上的多级子域名?

典型场景: blog.example.com → forum.example.com → shop.example.com
实施要点:

  1. 为每个子域名创建独立虚拟主机块:
    <VirtualHost :80>
     ServerName blog.example.com
     DocumentRoot /var/www/blog
    </VirtualHost>
    <VirtualHost :80>
     ServerName forum.example.com
     DocumentRoot /var/www/forum
    </VirtualHost>
  2. 使用通配符匹配时需谨慎:ServerName www..example.com会导致优先级冲突
  3. 推荐采用扁平化目录结构而非嵌套式,便于维护和管理

验证清单

✅ 域名解析生效:dig A second.example.com +short应返回服务器IP
✅ 端口连通性:telnet server_ip 80能建立TCP连接
✅ HTTP响应头:curl -I http://second.example.com显示200 OK状态码
✅ 日志输出:查看/var/log/httpd/second-access_log

建立第二个虚拟主机

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/103159.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年8月13日 20:47
下一篇 2025年8月13日 20:53

相关推荐

  • 阿里云虚拟主机建企业站,性价比高吗?有哪些优势与不足?

    随着互联网的快速发展,越来越多的企业开始意识到建立自己的官方网站的重要性,而阿里云虚拟主机作为国内领先的云服务提供商,为广大企业提供了一种高效、便捷的建站解决方案,本文将详细介绍如何利用阿里云虚拟主机搭建企业站,帮助您的企业提升品牌形象和竞争力,阿里云虚拟主机优势高稳定性:阿里云虚拟主机采用高性能服务器,确保网……

    2025年11月9日
    2500
  • 为什么我的Linux Apache虚拟主机突然无法访问?排查解决方法是什么?

    Linux Apache虚拟主机无法访问的问题可能是由于多种原因引起的,以下是一些常见的原因以及相应的解决方法,原因解决方法网络问题检查网络连接是否正常,确保服务器可以访问外部网络,Apache服务未启动使用以下命令启动Apache服务:sudo systemctl start apache2Apache配置错……

    2025年9月30日
    2200
  • 为何配置虚拟主机后却意外跳转至IIS管理页面?原因解析与解决方法!

    在配置虚拟主机时,如果意外地进入了IIS页面,这通常意味着虚拟主机配置出现了问题,以下是可能导致这种情况的原因以及相应的解决步骤,常见原因及解决步骤原因解决步骤虚拟主机文件未正确配置- 确保虚拟主机文件(通常是web.config)正确设置了应用程序池标识符、虚拟路径等, – 检查应用程序池是否已创建,并且应用……

    2025年10月29日
    3000
  • wanwang域名优惠活动,为何如此划算?揭秘背后惊喜优惠细节!

    在当今数字化时代,网络已经成为人们生活中不可或缺的一部分,而一个独特的、易于记忆的域名,无疑是提升个人或企业品牌形象、方便用户访问的重要手段,万网(Wanwang)作为中国领先的域名注册服务商,经常推出各种域名优惠活动,帮助用户以更低的价格注册到心仪的域名,以下将详细介绍万网域名优惠的相关信息,并结合酷盾(kd……

    2026年1月28日
    1200
  • WiFi传输信息为何必须依赖服务器连接?揭秘背后原理!

    随着互联网技术的飞速发展,无线网络(WiFi)已经成为人们生活中不可或缺的一部分,在享受WiFi带来的便利的同时,我们不禁会思考:WiFi传输信息需要连接服务器吗?本文将从专业、权威、可信和体验的角度,为您详细解析WiFi传输信息与服务器的关系,WiFi传输信息的基本原理WiFi是一种无线局域网技术,它通过无线……

    2026年1月26日
    3600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN