【问题标题】:Strange problem with Apache Virtual HostsApache 虚拟主机的奇怪问题
【发布时间】:2010-11-08 17:21:22
【问题描述】:

我最近在一台 Windows Vista 机器上安装了 Apache 1.3.41。我没有更改 httpd.conf 中的默认设置来尝试设置虚拟主机,如下所示:

在 hosts 文件中添加了一些主机名:

127.0.0.1    localhost
#::1         localhost
127.0.0.1    mysite
127.0.0.1    mydomain

我在 C:/Users/Moukasp/ 中创建了以下文件夹

C:/Users/Moukasp/Apache
C:/Users/Moukasp/django/mysite

然后在每个文件夹和 c:/Users/Moukasp/pictures 文件夹中添加了一些简单的 html 页面,最后,我在 httpd.conf 的末尾添加了以下设置:

NameVirtualHost 127.0.0.1

<VirtualHost localhost>
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "C:/Users/Moukasp/Apache"
ServerName localhost
Alias "/pics" "c:/users/moukasp/pictures" 
Alias "/ap"  "C:/Program Files/Apache Group/Apache/htdocs"
Alias "/dj" "C:/Users/Moukasp/django/mysite"  
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

<VirtualHost mysite> 
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "C:/Users/Moukasp/django/mysite"
ServerName mysite
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

<VirtualHost mydomain>
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "C:/Users/Moukasp/django/mysite"
ServerName mydomain
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

所以,网址

http://localhost 
http://localhost/pics
http://localhost/ap
http://localhost/dj
http://mydomain

工作正常。但我没有来自http://mysite 的回复,从设置中可以看出,它来自与http://mydomain 相同的文件夹。我尝试了各种名称,但没有任何反应。每次我启动 Apache 服务器时都会读取主机文件。我什至从主机文件中删除了mydomain 服务器和httpd.conf,以免虚拟主机的数量受到限制,但没有运气。

任何帮助将不胜感激,否则我会发疯的!确实,在完全无法使 Apache 与 mod_python for django 一起工作之后,我一直在尝试这个!我只是希望一步一步地取得一些成功!

【问题讨论】:

  • “无响应”是什么意思?
  • 什么是“服务器故障”? “无响应”表示请求“mysite”导致超时。
  • serverfault.com 是另一个更适合这些问题的网站
  • 由于您在“mydomain”上获得点击,它的配置似乎与“mysite”完全一样,这可能不是配置问题。并且 Apache 在同一个 IP 上的几十个主机上没有问题(我已经看到了)。那么是时候进行标准调试了:您是否检查了访问日志以确认您在“mysite”上获得了点击?由于它是 Django,您的 URL 配置是否专门寻找“mydomain”?
  • 已解决已解决已解决!问题出在代理服务器上。我已将其设置为覆盖 127.0.0.1 和 mydomain (前一段时间),但不是我最近添加的 mysite !愚蠢的我!非常感谢大家!

标签: apache virtual-hosts


【解决方案1】:

尝试向主机添加端口声明。例如:

<VirtualHost mydomain:80>
DocumentRoot "C:/Users/Moukasp/django/mysite"
ServerName mydomain
</VirtualHost>

【讨论】:

    【解决方案2】:

    试过NameVirtualHost 127.0.0.1:80,但它没有有任何区别!唯一可以工作的服务器是localhostmydomain
    我想知道我是否需要做的不仅仅是在hosts 文件中声明每个虚拟主机的服务器名称。

    【讨论】:

      【解决方案3】:

      VirtualHostNameVirtualHost 指令应该有 IP 地址和端口:

      NameVirtualHost 127.0.0.1:80
      
      <VirtualHost 127.0.0.1:80> 
      # ServerAdmin webmaster@dummy-host.example.com
      DocumentRoot "C:/Users/Moukasp/django/mysite"
      ServerName mysite
      # ErrorLog logs/dummy-host.example.com-error_log
      # CustomLog logs/dummy-host.example.com-access_log common
      </VirtualHost>
      

      【讨论】:

        【解决方案4】:

        试试:

        NameVirtualHost 127.0.0.1:80
        

        在您的 httpd.conf 中。我的配置文件包含一条说明应该使用端口说明符的注释。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-06
          • 2011-05-20
          • 2012-11-16
          • 2012-10-29
          • 2015-12-20
          • 2011-07-31
          • 2016-06-30
          • 2011-03-19
          相关资源
          最近更新 更多