如何在apache服务器中更改ServerName?

时间:2016-08-22 08:18:52

标签: apache server localhost

我从http://www.apachelounge.com/下载了Apache二进制文件。安装完成后,在第220行的httpd.conf文件中,我将#ServerName www.example.com:80更改为ServerName www.example.com:80。现在一切正常。服务器使用域名localhost。此外,localhost:80会自动重定向到localhost

  

由于ServerNamewww.example.com:80,那么为什么服务器可以使用localhost而不是www.example.com:80

     

如果我将www.example.com:80的每个实例都更改为mylocalserver:80,那么为什么apache服务器不会在mylocalserver:80上运行?

2 个答案:

答案 0 :(得分:1)

你的问题没有提供大量的信息,但无论如何我都会尝试回答。

  

localhost:80也会自动重定向到localhost。

这可能不是重定向,但是您的浏览器会移除localhost部分,因为它是网络上的默认端口。

  

由于ServerName是www.example.com:80,那么为什么服务器在localhost而不是www.example.com:80上工作?

可能是因为www.example.comlocalhost都引用了Web服务器,而Web服务器都响应了它们。 127.0.0.1通常配置为mylocalserver,因此会引用您当地的设置。

  

如果我将www.example.com:80的每个实例更改为mylocalserver:80,那么为什么apache服务器不能在mylocalserver上运行:80?

hosts可能不是指任何东西。尝试修改/etc/hosts文件({nix,%SYSTEM%\Drivers\etc\hosts上的mylocalserver)以包含127.0.0.1,以便localhost将其引荐至www.example.com。< / p>

您遇到的问题似乎源于对域名的误解。域名转换为IP地址。 localhost转换为互联网上的某个IP地址,但127.0.0.1通常转换为hosts,就像ServerName文件中定义的那样。您也可以使用127.0.0.1变量中的IP地址,例如ngLink

答案 1 :(得分:1)

在您到达Apache HTTPD服务器之前,DNS就像名称解析一样。当您在浏览器或任何地方放置名称时,您是否到达服务器只取决于该分辨率,如果解析了您配置的服务器的IP,那么它与httpd的配置方式无关只有一个名字,你不会与另一个名字相关。

至于httpd,它适用于您可能想要的任何名称,因为HTTPD不了解您的DNS设置。它侦听一个IP地址,如果一个请求到达服务器(通过ip:端口绑定到),那么它只会检查&#34; Host&#34;请求中的http标头决定了哪个虚拟主机(如果有多个虚拟主机并且已正确配置)来传递请求。

所以你可以使用你喜欢的任何名字,你解决它的方式以及最终的ip:port组合。