6

我不确定 SO 是否适合提出这个问题 - 如果不是,请告诉我。我想到了超级用户,但它似乎不太符合他们的常见问题规范。

无论如何 - 问题!如果我只是使用服务器为单个网站提供服务,是否需要在我的 apache2.conf 文件中输入 ServerName 值?如果是这样,我应该将其设置为什么?

我正在遵循本指南:

http://meppum.com/2009/jan/17/installing-django-ubuntu-intrepid/

它建议我在我的 apache2.conf 文件中设置“SeverName”设置。我检查并找到了这篇讨论“ServerName”的文章

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_: Ch20 :_The_Apache_Web_Server

这很有趣,但它并没有真正告诉我何时需要设置 ServerName。'据我判断,我只有在做某事时才需要它。domainname.com,比如,answers.yahoo.com

是这样吗?如果不是,那么服务器名称(例如,一个名为 www.yahoo.com 的域,例如 192.0.0.1)是什么意思?

4

1 回答 1

5

如果服务器托管单个网站,则不必使用 VirtualHosts,因此不必定义 ServerName,但建议这样做。

如果您不这样做,Apache 将尝试根据执行反向 DNS 查找的服务器 IP 找出主机名。

Apache 文档

ServerName 指令设置服务器用来标识自己的请求方案、主机名和端口。这在创建重定向 URL 时使用。

此外,在使用基于名称的虚拟主机时,ServerName 用于(可能与 ServerAlias 结合使用)来唯一标识虚拟主机。

例如,如果托管 Web 服务器的机器的名称是 simple.example.com,但该机器也有 DNS 别名 www.example.com,并且您希望 Web 服务器被这样标识,则应使用以下指令:

 ServerName www.example.com

ServerName www.example.com 如果未指定 ServerName,则服务器尝试通过对 IP 地址执行反向查找来推断主机名。如果在 ServerName 中未指定端口,则服务器将使用传入请求中的端口。为了获得最佳可靠性和可预测性,您应该使用 ServerName 指令指定明确的主机名和端口。

回答您的问题:

如果我只是使用服务器为单个网站提供服务,是否需要在我的 apache2.conf 文件中输入 ServerName 值?

不,你不这样做,但建议这样做。

如果是这样,我应该将其设置为什么?

语法是:ServerName [scheme://]fully-qualified-domain-name[:port]

是这样吗?

不,不仅如此。

如果不是,那么服务器名称(例如,一个名为 www.yahoo.com 的域,例如 192.0.0.1)是什么意思?

ServerName www.yahoo.com

于 2014-04-28T10:46:38.293 回答