首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带域和IP的Apache NameVirtualHost

带域和IP的Apache NameVirtualHost
EN

Server Fault用户
提问于 2010-07-02 19:12:39
回答 2查看 631关注 0票数 1

我有几个IP,我正在尝试配置在Apache2中。我试过四处寻找,但似乎要求太多了。

我想将每个IP的直接请求(例如http://155.155.155.100)路由到一个专用的DocumentRoot (例如/www/155.155.155.00/)。

而解析到同一个IP的域(155.155.155.100)将有一个单独的DocumentRoot。到目前为止,Apache在IP的路由方面没有问题,但是它不喜欢在域之间共享它们。

到目前为止,我的设置( IP和域路由都不工作到/www/155.155.101-它们不是分开的):

代码语言:javascript
复制
NameVirtualHost 155.155.155.100
NameVirtualHost 155.155.155.101
NameVirtualHost 155.155.155.102
NameVirtualHost 155.155.155.103

<VirtualHost 155.155.155.101>
DocumentRoot /www/155.155.155.101
</VirtualHost>

<VirtualHost 155.155.155.101>
ServerName www.domain1.com
ServerAlias www.domain1.com
DocumentRoot /www/domain1.com
</VirtualHost>

我会感谢你的帮助!

EN

回答 2

Server Fault用户

发布于 2010-07-02 20:54:53

未经测试。我假设您的主机名都在一个IP上;如果不是,您可以使用单个NameVirtualHost *,并在任何地方的<VirtualHost *>上匹配。

代码语言:javascript
复制
NameVirtualHost 155.155.155.100:80
NameVirtualHost 155.155.155.101:80
NameVirtualHost 155.155.155.102:80
NameVirtualHost 155.155.155.103:80

<VirtualHost 155.155.155.100:80>
ServerName 155.155.155.100
DocumentRoot /www/155.155.155.100
</VirtualHost>

<VirtualHost 155.155.155.100:80>
ServerName www.domain0.com
DocumentRoot /www/domain0.com
</VirtualHost>

<VirtualHost 155.155.155.101:80>
ServerName 155.155.155.101
DocumentRoot /www/155.155.155.101
</VirtualHost>

<VirtualHost 155.155.155.101:80>
ServerName www.domain1.com
DocumentRoot /www/domain1.com
</VirtualHost>

据我所知,您的错误是没有给第一个vhost一个ServerName。

Apache使用了接收请求的IP的反向,我希望它是www.domain1.com;因此,您的第二个虚拟主机是隐藏的。

票数 1
EN

Server Fault用户

发布于 2010-07-03 13:04:25

问题是你的第一个IP只有一节,

代码语言:javascript
复制
<VirtualHost 155.155.155.101>
    DocumentRoot /www/155.155.155.101
</VirtualHost>

不包括ServerNameServerAlias,而域后面的则包含。Apache将尝试将传入连接匹配到匹配的第一个VirtualHost配置节。由于使用解析到IP的域的连接将与IP匹配,无需任何进一步的细化(ServerNameServerAlias),它将被用于处理连接。

因此,您应该确保每个VirtualHost配置节都有一个ServerNameServerAlias选项以及DocumentRoot,或者确保您的更具体的VirtualHost配置节在配置文件中首先出现在不太具体的配置文件中(即IP地址本身有或没有ServerName选项)。

因此,下列工作应如你所料:

代码语言:javascript
复制
NameVirtualHost 155.155.155.100
NameVirtualHost 155.155.155.101
NameVirtualHost 155.155.155.102
NameVirtualHost 155.155.155.103

<VirtualHost 155.155.155.101>
    ServerName www.domain1.com
    ServerAlias www.domain1.com
    DocumentRoot /www/domain1.com
</VirtualHost>

<VirtualHost 155.155.155.101>
    DocumentRoot /www/155.155.155.101
</VirtualHost>
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/157116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档