2017-08-07 186 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的網頁相同

相關問題