我的网络服务器如何知道该域名是我的?

时间:2017-08-07 04:40:07

标签: apache dns webserver

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

1 个答案:

答案 0 :(得分:0)

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

答案很长(我建议您阅读):

一个常见的新手误解是,域名已经被" TIED"到Web服务器。然而,事实并非如此。它们完全不同,有些不相关。域只是与您的Web服务器相关的IP地址的简写。 IP地址确实与您的Web服务器有关。

例如:

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转到Google

172.217.6.78也适用于Google,因为172.217.6.78是google.com关联/解析的网络服务器之一。继续,在您的Web浏览器中输入172.217.6.78。它会带你去google.com。

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

在您的网络服务器上:

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

此软件的常见示例包括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的网页相同