如何通过域名使本地主机允许Apache访问

我有一个在Ubuntu上运行的redmine服务器。 我也在同一个服务器上托pipe一个svn仓库。

svn虚拟目录对每个用户都有授权限制,但是我希望允许redmine应用程序在不提供用户名的情况下访问它。

所以,我已经把“10.10.10.10.10”作为服务器的外部IP,并且工作正常。

但是我想把真正的主机名称放在那里,而不是外部IP。

 
 #dnsdpmainname
 mydomain.com
 # 主机名
 myserver.mydomain.com
 #ping myserver
 PING myserver.mydomain.com(10.10.10.10)...的作品

但是..

 #ping myserver.mydomain.com
 PING myserver.mydomain.com(127.0.1.1)...也适用,但不同的IP

我曾尝试在“Allow from”指令中同时使用myserver和myserver.mydomain.com,但这些都不起作用。

我猜这个问题是在myserver和myserver.mydomain.comparsing到不同的IP的地方 – 一个是外部IP,一个是内部的。

任何想法如何解决这个问题? 我希望在Allow指令中使用主机名,而不是IP地址(理论上可能会改变)。

谢谢

127.0.0.1是每个主机都有的,不会改变的所谓的回送地址。 通常它有关联的主机名localhost 。 这个规则唯一的例外是当你有IPv6。 其定义的本地主机地址是::1 ,大部分时间除了IPv4地址外。

你应该确保地址实际上是127.0.0.1,而不是你所说的。 虽然这也起作用,但它会产生一些难以debugging的问题。 看看你的configuration这些映射的/etc/hosts文件。 就像提示一样:绝不能让实际的服务器名称指向127.0.0.1 ,只能指向外部IP。 这使得事情更容易运行和debugging。

我个人有Redmine / ChiliProject通常设置一个特殊的虚拟主机绑定到本地主机提供未经身份validation的访问。 另一个(可能更快)的替代方法是不使用Redmine中的http:// URL,而是使用file:// URL并在此处跳过Web服务器。

说了这么多,一旦你的名字parsing正确的设置,你可以在Apacheconfiguration中声明名称。 虽然要求反向名称parsing实际上起作用,即系统能够将IP地址parsing回名称。 “/ etc / hosts”中的条目和正确设置DNS服务器的情况就是这种情况。

如果你这样做,你隐式信任的DNS系统不骗你,可能不是这样的情况。 一般来说,插入IP是更安全的select。 有了一些文件,这不应该伤害太多。 公共服务器IP不会改变那么多:)