描述: 服务器用来标识自己的主机名和端口
句法: ServerName[scheme://]domain-name|ip-address[:port]
内容: 服务器配置,虚拟主机
状态: 核心
模组: 核心
该ServerName指令设置服务器用来标识自身的请求方案,主机名和端口。
ServerName使用基于名称ServerAlias的虚拟主机时,用于(可能与结合使用)唯一标识虚拟主机。
此外,当UseCanonicalName设置为非默认值时创建自引用重定向URL时将使用此选项。
例如,如果托管Web服务器的计算机的名称为simple.example.com,但该计算机也具有DNS别名,www.example.com并且您希望如此标识Web服务器,则应使用以下指令:
ServerName www.example.com
该ServerName指令可以出现在服务器定义内的任何位置。但是,每个外观都会覆盖先前的外观(在该服务器内)。
如果未ServerName指定,服务器首先尝试向操作系统询问系统主机名,以推断出客户端可见的主机名,如果失败,则对系统上存在的IP地址执行反向查找。
如果没有在中指定端口ServerName,则服务器将使用传入请求中的端口。为了获得最佳的可靠性和可预测性,您应该使用ServerName指令指定一个明确的主机名和端口。
如果您使用的是基于名称的虚拟主机,则ServerName内部
有时,服务器在运行SSL的设备(例如反向代理,负载平衡器或SSL卸载设备)后面运行。在这种情况下,请https://在ServerName指令中指定客户端连接到的方案和端口号,以确保服务器生成正确的自引用URL。
看到的说明UseCanonicalName和UseCanonicalPhysicalPort指令,其用于确定自引用的URL(例如,通过是否设置mod_dir模块)将是指指定的端口,或在客户端的请求给定的端口号。
如果未设置ServerName服务器可以解析为IP地址的名称,则会导致启动警告。httpd然后,将使用系统hostname命令使用它可以确定的任何主机名。这几乎永远不会是您真正想要的主机名。