当前位置: 首页 > 知识库问答 >
问题:

文档根设置为虚拟主机的文档根?

宇文曦
2023-03-14

OS:centOS 6.3最终版

我已经安装了mysql和apache2(httpd)包,并更改了/etc/httpd/conf/httpd.conf中的配置,如下所示:

<VirtualHost *:80>
    DocumentRoot /var/www/html/wordpress/
    ServerName www.asterix.int
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/html/staticSite/
    ServerName www.meins.lan
    ServerAlias www.deins.lan
    ServerAlias www.obelix.int
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/html/joomla/
    ServerName www.example.com
    ServerAlias www2.example.com
    ServerAlias www3.example.com
</VirtualHost>

所有服务器名称和服务器别名都工作正常,我可以访问 3 个页面。

但是当我试图通过服务器的ip访问一个页面时,奇怪的事情发生了(至少对我来说)。apache2返回给我第一个定义的virtualHost(在这个例子中是wordpress)的索引页面。我已经在所有3个虚拟主机上试过了,得到了相同的结果。

这是正常行为还是我做的错事?

如果这是正常行为:我是否可以专门为对 ip 的所有请求设置 DocumentRoot ?

Thx!

共有2个答案

秦哲瀚
2023-03-14

这是正常行为。您正在使用称为基于名称的虚拟主机的虚拟主机方法。你可以想象,这意味着,根据配置中的ServerName和ServerAlias指令,apache的“路由”只能由HTTP请求中的主机名完成。

由于对服务器 IP 的请求(例如 1.2.3.4)无法路由到任何定义的虚拟主机中,因此 apache 采用默认的虚拟主机。默认虚拟主机或多或少是定义的第一个虚拟主机。IP 上的请求被接受,因为您使用了通配符定义 *:80。

您可以通过apache检查apache中设置的虚拟主机

# command apache2 -S
艾凌龙
2023-03-14

这是预期的行为。如果您使用IP(假设< code > http://123 . 123 . 123 . 123/),Apache将使用< code>123.123.123.123作为HTTP主机名。由于不存在< code>ServerName或< code>ServerAlias为< code>123.123.123.123的虚拟主机,因此使用第一个虚拟主机。

因此,如果您想要一个只监听< code > http://123 . 123 . 123 . 123/的虚拟主机,您可以简单地用以下代码创建一个虚拟主机:

<VirtualHost *:80>
    DocumentRoot /var/www/html/my-ip-site/
    ServerName 123.123.123.123
</VirtualHost>
 类似资料:
  • 提前感谢。 我只是遵循数字海洋的教程:https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-14-04-lts。我完成了所有说明,但是当我开始测试配置并从我的停车域添加 A 记录时,假设 example.com,我的数字海洋 vps 地址是 192.168.10.2

  • 术语"虚拟主机"是指在一个机器上运行多个网站(比如:www.company1.com和www.company2.com)。如果每个网站拥有不同的IP地址,则虚拟主机可以是"基于IP"的;如果只有一个IP地址,也可以是"基于主机名"的,其实现对最终用户是透明的。 Apache是率先支持基于IP的虚拟主机的服务器之一。1.1及其更新版本同时支持基于IP和基于主机名的虚拟主机,今后,不同的虚拟主机有时会

  • 理解虚拟机的配置文件:Vagrantfile。 Vagrantfile 在项目的目录下面有个 Vagrantfile 文件,它是我们执行 vagrant init 命令创建的一个虚拟机的配置文件。在这个配置文件里可以包含项目使用的虚拟机的相关配置。比如我在执行 vagrant init 命令的时候加了一个 centos/7 ,指定了虚拟机使用的镜像的文件,这样创建的这个配置文件,实际的内容会是这样

  • 打印复合图稿 复合图是一种单页图稿,与您在插图窗口中看到效果的一致 — 换言之,就是直观的打印作业。复合图像还可用于校样整体页面设计、验证图像分辨率以及查找照排机上可能发生的问题(如 PostScript 错误)。 1选择 “文件 ”>“打印 ”。 2从 “打印机 ”菜单中选择一种打印机。若要打印到文件而不是打印机,请选择 “Adobe PostScript® 文件 ”或 “Adobe PDF”。

  • 考虑以下Firestore结构: 收藏 现在,我想查询宠物满足某些条件的人。例如,拥有两只以上宠物的人,或者拥有一只名为“ABC”的宠物的人。 这可能吗?

  • 本文档介绍了Burp Suite 及相关组件的功能。 你可以点击以下链接开始了解: Burp Suite 专业版及社区版 Burp Scanner Burp Collaborator Burp Infiltrator 完整文档目录 注意: 与任何其他的安全测试软件一样,Burp Suite包含的功能有可能对目标系统造成损坏。在对目标进行安全漏洞方面的的测试及交互过程可能导致目标出现某些问题。你应当