【问题标题】:Why doesn't Apache redirect my IP address to the desired location on my server?为什么 Apache 不将我的 IP 地址重定向到我服务器上的所需位置?
【发布时间】:2012-05-29 19:34:45
【问题描述】:

我做了一个简单的页面/home/david/mainSite/index.html。然后我在 Apache 中添加了一个虚拟主机来将我的 IP 地址重定向到这个页面。

<VirtualHost *:80>
ServerName 74.181.105.228
DocumentRoot /home/david/mainSite
</VirtualHost>

但是,当我在重新启动 Apache 后转到 74.181.105.228 时,我得到一个包含此文本而不是“index.html”的页面。

Welcome to mydomain.com!
This is the default web page for this server.
The web server software is running but no content has been added, yet.

为什么 Apache 会重定向到默认页面而不是“/home/david/mainSite/index.html”?

这是我的“/etc/apache2/sites-available/default”文件的样子。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

【问题讨论】:

  • 你的配置中有这个吗? NameVirtualHost *:80
  • 是的,我的 apach2.conf 文件中同时有 ServerName 74.181.105.228NameVirtualHost *:80
  • 您将此VirtualHost 块放在什么文件中?您在access_log 中看到请求了吗?如果您修改日志记录配置以包含 Host: 标头 (%{Host}i) 和规范的 ServerName (%v),您看到预期的结果了吗?
  • 我将 VirtualHost 块放在“/etc/apache2/sites-available”文件夹中名为“mainSite.apache”的文件中,运行“a2ensite mainSite.apache”,然后重新启动 Apache (" apachectl 重启”)。我认为我没有在访问日志中看到请求。我会试试后者。
  • 你知道我如何修改 access.log 的日志吗?我找不到执行此操作的 Apache 指令。谢谢!

标签: apache2


【解决方案1】:

我找到了答案!这很棘手。

在“apache2.conf”中,我原来有ServerName 74.181.105.228,这使得通过浏览器访问74.181.105.228会加载我服务器的默认页面。

将“apache2.conf”中的这个值更改为ServerName mydomain.com 解决了这个问题,因为 Apache 不再将 74.181.105.228 指向我服务器的默认页面。反过来,我可以指示 74.181.105.228 从我的文件系统中的某个目录加载页面。

我的虚拟主机块仍然存在

<VirtualHost *:80>
ServerName 74.181.105.228
DocumentRoot /home/david/mainSite
</VirtualHost

【讨论】:

  • 这个答案帮了我很多忙!我想指出,如果服务器自动将您的 IP 地址分配为您的 ServerName,则会出现同样的问题(如果服务器正在这样做,您应该会看到类似“无法可靠地确定服务器的完全限定域名,使用192.168.1.222 for ServerName" 或 /var/log/httpd/error_log 中的类似名称)。
猜你喜欢
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
  • 2021-07-24
  • 2021-08-27
  • 2016-11-10
  • 2021-12-05
  • 2020-01-31
相关资源
最近更新 更多