2017-08-07 138 views
0

我买了一个域名并将其注册到DNS服务器上。但我想知道我的网络服务器如何知道即将到来的请求是否来自我的域名。例如。有人在我的服务器上注册了他的域名。显然apache应该拒绝其他域的请求。我只想知道更多关于web服务器(如apache)如何检测这个问题的细节。它只是在配置文件中设置(可能服务器名称?)并做一些字符串比较?我的网络服务器如何知道域名是我的?

回答

0

简答:默认情况下,如果其他人将他们的域名指向您的网站,默认情况下,发送到他们计算机的网页与您在www.yourdomain.com上使用的网页相同。您还可以编程您的Web服务器以拒绝/重定向来自其他域的请求。

龙答案(我推荐你读):

一个常见的新手的误解是,域“捆绑”到Web服务器。但是,这不是事实。它们完全不同,并且有些不相关。域只是与您的Web服务器相关的IP地址的简写。一个IP地址就是您的网络服务器的TIED。

例如:

www.example.com可以 '决心'/关联到1.1.1.1 和 www.randomdomain.com也可以解析为1.1.1.1

如果是1.1.1.1您的Web服务器所关联的IP地址,然后这些请求都会发送到您的Web服务器。

现在,如果你考虑一下这个逻辑,你应该能够通过输入1.1.1.1访问你的web服务器。这是真的!

现实世界的例子:

www.google.com去谷歌

172.217.6.78还去谷歌,因为172.217.6.78是网络服务器google.com将关联/决心的一个。继续并在您的网络浏览器中输入172.217.6.78。它会带你到google.com。

DNS服务器将您的域指向您的Web服务器的IP地址。

在你的web服务器:

你的服务器将运行一个软件,将它从外部网络获取请求作出回应。该软件通常会知道如何使用正确的语法来响应此请求,并且能够同时处理多个请求。当这个软件得到一个请求时,它会加载一个文件(你指定的)并将它发送给用户/客户端。

这个软件的常见例子包括Apache(大多数着名/流行 - 像你浏览的所有网站的40%(包括facebook.com)和nginx(变得更受欢迎)。 Apache/nginx/etc Web服务器的默认配置是为该用户(在端口80)提供'www'文件夹中的文档。但是,(对于Apache)如果您想在一台Web服务器上提供多个域(www.example.com & login.example.com),则通常会创建虚拟主机。创建虚拟主机可以通过编辑你的Apache配置文件来完成。 (如果您在GoDaddy/namecheap或类似的东西上托管,则无法访问此内容。)

一个基本的虚拟主机的一个例子是:

<VirtualHost *:80> #80 for port 80 - the standard port for unencrypted web traffic 
ServerName www.yourdomain.com 
DocumentRoot /where/your/web/files/are/located 
<VirtualHost> 

然后,您可以创建另一个虚拟主机如果另一个,拒绝/着另一个域的交通

<VirtualHost *:80> 
ServerName www.randomotherdomain.com 
#here, you could either serve new content to this domain using "DocumentRoot" or you can forward all traffic to your website 
Redirect/http://www.yourdomain.com 
<VirtualHost> 

然而,在默认情况下人员将其域名指向您的网站,默认情况下,发送到其计算机的网页与您用于www.yourdomain.com的网页相同

相关问题