使用IP时DOJO出错

时间:2011-09-08 08:47:15

标签: dojo webserver

使用dojo的项目出现奇怪错误:

“未找到捆绑包,区域设置..”

有什么想法吗?

我用PHP 5.2运行Zend Server CE

如果我添加:192.168.2.1到“hosts”它可以工作(窗口)

1 个答案:

答案 0 :(得分:2)

听起来Zend服务器正在使用站点名称作为部分域来执行某种虚拟站点支持。

我不能说100%如果/如何是因为我不使用Zend,但我可以用Apache作为例子解释原理。

有三种方式可以在单个Web服务器应用程序下虚拟托管网站,这适用于当今市场上的大多数服务器,Apache,IIS,nginx和许多其他服务器。

这一切归结为一件事,让一个正在运行的服务器应用程序实例能够托管多个单独的网站。

分离站点的3种方法如下:

按IP地址:如果您有多个IP地址(通常 - 但并非总是因为您有多个网络接口卡),那么您可以告诉您的服务器应用程序为一个站点收听一个IP,另一个网站的另一个IP,依此类推。如果您浏览到一个IP,您将获得一个站点,同样另一个站点上的另一个站点。

按端口号:如果您只使用一个IP地址,那么您可以绑定多个端口号,端口80通常是Web服务器的默认设置,但通过浏览到一个地址并固定端口号(http://mysite.com:99)您将强制浏览器使用该端口。然后,您可以让多个网站在不同的端口上进行侦听,并根据需要在浏览时手动选择它们。

按主机名称标题:这是迄今为止支持多个站点的最常用方式,所有了解HTTP / 1.1协议的Web服务器都必须遵守包含以下内容的请求中的标头字段主机名,当一个请求进入EG:http://mysite,com/然后在请求标题中会有一个看起来像'Host:mysite.com'的条目,然后网络服务器可以用它来说,哦是的..我知道哪一个是...然后选择并提供正确的网站。

当您开始使用通常无法解析或没有DNS名称的IP地址时会出现问题,因为Web服务器不知道要将其标记为哪个主机名。

作为Apache中的一个例子,如果你设置一个虚拟主机,然后尝试仅使用IP地址浏览该服务器,你将获得默认服务器,在许多情况下甚至不会配置为正确响应或显示任何内容。

为了加强这一点,进入Web应用程序层,许多框架也会对主机名和Web服务器传递给它们的其他变量进行自己的检查,许多框架根据这些信息决定如何操作。

如果你已经通过IP地址访问了默认的Web应用程序,那么框架可能会因为显示IP地址作为主机名而感到困惑。

正如OP所指出的,在很多情况下,您可以为您的hosts文件添加一个名称,并将其用作穷人的DNS替代品,可以在以下位置找到要修改的文件:

c:\ windows \ system32 \ drivers \ etc \ - 在Windows上

的/ etc /

在Linux / Unix上

该文件通常只称为“hosts”,是纯文本文件。添加如下行:

    123.456.789.123 myserver

http://myserver/绑定到http://123.456.789.123/

如果你可以,并且你做了很多网络应用程序可能值得设置你自己的DNS服务器,大多数Linux发行版将允许你安装'Bind',我也相信有一个版本可用于Windows

我不会在这里讨论私有DNS服务器的专业和缺点,它本身就是一个完整的主题,但是如果你可能会对你的主机做很多补充,那么从长远来看你会发现它是一个更好的选择。