域名解析、nginx

域名解析原理

     當在瀏覽器中輸入域名後,首先需要獲取到域名對應的ip才能進行訪問。域名和ip的映射存儲在DNS服務器上,那麼計算機是如何獲取到對應的ip呢?

     1. 瀏覽器搜索自身的DNS緩存。
     2. 搜索操作系統自身的DNS緩存。
     3. 讀取本地hosts文件
     4. 瀏覽器會發起一個DNS的系統調用,就會向本地配置的首選DNS服務器(一般是電信運營商提供的)發起域名解析請求.
     5. 如果步驟5沒有解析成功,運營商的DNS服務器會代替我們的瀏覽器發起迭代DNS解析請求
    (1)首先會找到根域的DNS的IP地址,(DNS服務器都會有13臺根域的DNS服務器的IP地址);
    (2)根據(1)中訪問到的IP地址訪問根域服務器,然後根域服務器會告知com域服務器的IP地址;
    (3)根據(2)中訪問到的IP地址訪問com域服務器,然後得到worthsen.com的IP地址;
    (4)根據(3)中訪問到的worthsen.com的IP地址訪問對應的服務器,然後得到www.worthsen.com的IP地址;
    (5)現在就可以訪問了www.worthsen.com了。

CDN(內容分發網絡 Content Delivery Network)

    通過分佈在各地的緩存服務器,將一些靜態資源分佈在訪問相對集中的一些地區,用戶在訪問網站時,通過DNS解析一臺最適合的服務器來向用戶提供服務,來實現負載均衡。

nignx

  • 虛擬主機
         簡單來說,虛擬主機就是可以在一臺nginx服務器上運行多個網站。nginx可以通過配置多個server來配置多臺虛擬主機,一個server對應一臺虛擬主機。一臺虛擬主機上可以部署一個網站。各個虛擬主機的ip地址是相同的,但是一個ip可以綁定不同的域名,所以每臺虛擬主機都可以擁有自己的域名和端口號,但是80端口只有一個,一般情況下,多臺虛擬主機公用80端口,然後根據域名來區分客戶端請求的到底是哪一臺虛擬主機,哪一個網站。
         配置虛擬主機可以基於端口號,IP和域名。1.基於端口號的虛擬機主機:nginx監聽多個端口,根據不同的端口號;來區分不同的網站。2.基於域名的虛擬主機:實際的場景中,訪問一個網站都是通過不同的域名訪問,所以基於域名的虛擬主機是最常見的,不同的域名可以解析指向同一個ip地址,而nginx在解析請求的時候會根據不同的域名來指向不同服務。3.基於IP的虛擬主機;一臺主機可以擁有超過1個ip地址,通過不同的ip地址,指向不同的服務。
  • 反向代理
         反向代理與正向代理的區別就是:正向代理代理客戶端,反向代理代理服務器。
         正向代理的是一個位於客戶機和原始服務器之間的代理服務器,客戶機爲了從原始服務器拿到數據,向代理服務器發送一個請求並指向原始服務器,原始服務器將內容交給代理服務器並返回給客戶機。
         反向代理是由代理服務器接收客戶機的請求,並轉發到內網的服務器上。並將從服務器上取得的數據返回給客戶機,此時代理服務器對外表現得就像一個服務器。
        
  • 負載均衡
         負載均衡是指多個服務器共同完成一件事情,其核心是“分攤壓力”。Nginx實現負載均衡是指將請求轉發給服務器集羣。Nginx默認處理負載均衡的方式是“輪詢”。負載均衡和反向代理是兩個功能,但不能完全分開,要實現負載均衡首先要實現反向代理,而且當代理的是服務器集羣時才能實現負載均衡。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章