【问题标题】:Apache virtual hosts don't seem to be workingApache 虚拟主机似乎无法正常工作
【发布时间】:2013-04-07 07:11:23
【问题描述】:

我已经在/etc/apache2/sites-available 中为我的站点的虚拟主机设置了文件。我创建了一个名为 mysite.com 的文件,里面有:

<VirtualHost *:80>
     ServerAdmin email@mail.com
     ServerName mysite.com
     ServerAlias mysite.com
     DocumentRoot /srv/www/mysite.com/public_html/
     ErrorLog /srv/www/mysite.com/logs/error.log
     CustomLog /srv/www/mysite.com/logs/access.log combined
</VirtualHost>

然而,当我使用网络浏览器访问实际域时,它似乎正在服务/var/www/index.html。我的 DNS 正在将帧重定向到我的服务器 IP 地址。我还需要做什么才能使其正常工作?

我刚开始托管自己的网站。

【问题讨论】:

  • “您的 DNS 正在执行帧重定向”是什么意思?虚拟主机要求 mysite.com 的 DNS 条目指向您的服务器,而不是指向具有显示您服务器 IP 地址的全屏框架的其他人。
  • 当我 HTTP 重定向到我的 IP 地址时,我的 IP 会显示在浏览器的地址栏中。我做错了吗?
  • 是的,所以我只是将它们更改为 HTTP 重定向,现在它甚至找不到 Web 服务器。我在地址栏中输入域名,它解析为我的服务器的文字 IP 地址,并说它无法连接。
  • apache 查看请求的 Host: 标头以找出要使用的虚拟主机。如果您重定向到您的 IP 地址,您将丢失该标头并且您将无法访问您的虚拟主机。
  • 那么我如何发送一个标头告诉它使用哪个主机?

标签: apache dns apache2


【解决方案1】:

您需要启用此虚拟主机 + 重新加载 apache 配置:

# a2ensite mysite.com
# apache2ctl graceful

【讨论】:

  • 嗯,所以我这样做了,我在启用了站点的情况下看到了我的站点的条目,但它仍在提供 /var/www/index.html。当我执行“sudo service apache2 restart”时,如果它有帮助的话,我会得到它。 * 重新启动 Web 服务器 apache2 apache2:无法可靠地确定服务器的完全限定域名,使用 {MY IP ADDRESS} 作为 ServerName apache2:无法可靠地确定服务器的完全限定域名,使用 {MY IP ADDRESS} 作为 ServerName Action 'start ' 失败的。 Apache 错误日志可能有更多信息
  • 要修复“无法可靠地确定服务器的完全限定域名”,您需要这样做:# echo ServerName localhost >> /etc/apache2/conf.d/httpd.conf (debian)
  • 谢谢。那个错误消失了。它仍然只是说“* 重新启动 web 服务器 apache2 操作 'start' 失败。Apache 错误日志可能有更多信息。”现在。
【解决方案2】:

我为此苦苦挣扎了几天,最终得到帮助的是禁用默认虚拟主机。在 ubuntu 14/apache 2.4 中,您会在启用站点的目录中看到“000-default.conf”

所以

a2dissite 000-default.conf

还要注意 .conf 扩展名,它是强制性的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-19
    • 2017-11-12
    • 2016-02-23
    • 2020-07-17
    • 2015-08-03
    • 2020-12-21
    • 2015-12-03
    • 1970-01-01
    相关资源
    最近更新 更多