Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在apache服务器中更改服务器名?_Apache_Server_Localhost - Fatal编程技术网

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

如何在apache服务器中更改服务器名?,apache,server,localhost,Apache,Server,Localhost,安装后,我从下载了Apache二进制文件,在第220行的httpd.conf文件中,我将#ServerName www.example.com:80更改为ServerName www.example.com:80。现在一切正常。服务器用户使用域名localhost。另外,localhost:80自动重定向到localhost 既然ServerName是www.example.com:80,那么为什么服务器在localhost上工作而不是www.example.com:80 如果我将www.exa

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

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

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


你的问题没有提供太多的信息,但我还是会尽力回答的

另外,localhost:80自动重定向到localhost

这可能不是重定向,而是您的浏览器删除了
:80
部分,因为它是web上的默认端口

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

可能是因为
localhost
www.example.com
都引用了web服务器,而web服务器对这两者都做出响应
localhost
通常配置为
127.0.0.1
,因此将参考您的本地设置

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

mylocalserver
可能没有引用任何内容。尝试编辑您的
hosts
文件(
/etc/hosts
在*nix上,
%SYSTEM%\Drivers\etc\hosts
)以包含
mylocalserver
,将其引用到
127.0.0.1
,就像
localhost
一样


你遇到的问题似乎源于对域名的误解。域名转换成IP地址
www.example.com
转换为internet上的某个IP地址,但
localhost
通常转换为
127.0.0.1
,就像
hosts
文件中定义的那样。您也可以只在
ServerName
变量中使用IP地址,例如
127.0.0.1

您的问题没有提供太多信息,但我还是会尝试回答它

另外,localhost:80自动重定向到localhost

这可能不是重定向,而是您的浏览器删除了
:80
部分,因为它是web上的默认端口

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

可能是因为
localhost
www.example.com
都引用了web服务器,而web服务器对这两者都做出响应
localhost
通常配置为
127.0.0.1
,因此将参考您的本地设置

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

mylocalserver
可能没有引用任何内容。尝试编辑您的
hosts
文件(
/etc/hosts
在*nix上,
%SYSTEM%\Drivers\etc\hosts
)以包含
mylocalserver
,将其引用到
127.0.0.1
,就像
localhost
一样


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

DNS,因为在到达Apache HTTPD服务器之前会发生名称解析。当您在浏览器或任何地方输入名称时,是否访问服务器仅取决于该分辨率以及是否解析已配置的服务器的ip,因此与httpd的配置方式无关,您使用一个名称访问它,而不使用另一个名称

至于httpd,它可以在您想要的任何名称上工作,因为httpd不知道您的DNS设置。它侦听一个IP地址,如果请求到达服务器(通过绑定到的IP:端口),那么它将检查请求中的“主机”http头,以决定向哪个virtualhost(如果有多个并且已正确配置)发送请求


因此,您可以使用任何您喜欢的名称,重要的是如何解析它以及在哪个ip:端口组合上结束。

DNS作为名称解析发生在您到达Apache HTTPD服务器之前。当您在浏览器或任何地方输入名称时,是否访问服务器仅取决于该分辨率以及是否解析已配置的服务器的ip,因此与httpd的配置方式无关,您使用一个名称访问它,而不使用另一个名称

至于httpd,它可以在您想要的任何名称上工作,因为httpd不知道您的DNS设置。它侦听一个IP地址,如果请求到达服务器(通过绑定到的IP:端口),那么它将检查请求中的“主机”http头,以决定向哪个virtualhost(如果有多个并且已正确配置)发送请求


因此,您可以使用任何您喜欢的名称,重要的是如何解析它,以及最终使用哪个ip:端口组合。

您知道DNS是如何工作的吗?你将需要它来设置你想要的方式并理解你面临的问题你知道DNS是如何工作的吗?您需要这样做才能按照您想要的方式进行设置并理解您所面临的问题……因为localhost和www.example.com都引用web服务器,web服务器响应bot