一.瀏覽器訪問網站過程nginx
**.1 .訪問流程**
利用DNS協議進行域名解析 --> 創建tcp協議三次握手過程 --> 客戶端發出訪問網站相應頁面請求(發出http協議請求報文) --> 服務端發出相應訪問頁面的請求信息(發出http) --> 斷開tcp協議四次揮手過程c++
2. 利用DNS協議進行域名解析瀏覽器
DNS稱爲域名系統,主要做用是負責把域名解析對應的IP地址。就是把www.baidu.com 解析爲對應的IP地址 ,有了IP地址就至關於知道百度服務器在哪了,接下來就是去找它。緩存
DNS體系中,查找記錄,分爲兩種查找方式:遞歸查詢和迭代查詢。服務器
一、 遞歸查詢:由DNS客戶端發起,一級一級的向上提交查詢申請,直至查詢終止tcp
二、 迭代查詢:通常狀況下由DNS服務器之間完成,即本地DNS向上一級DNS提交查詢,上級DNS並不直接返回查詢結果,而是告知DNS應該向哪裏去查找。
在真正的DNS查詢過程當中,是包含遞歸查詢和迭代查詢的。不管任何方式的查找過程,在每一個環節,都會先查找緩存。DNS服務器若是沒有了緩存就失去了意義。。。ide
請記住查詢順序:網站
HOSTS表--> 本地DNS -->上層DNS(包括根DNS)url
3.創建tcp協議三次握手過程
1)簡單說明TCP協議
IP 協議定義了一套本身的地址規則,稱爲 IP 地址。它實現了路由功能,容許某個局域網的 A 主機,向另外一個局域網的 B 主機發送消息。
IP 協議只是一個地址協議,並不保證數據包的完整。若是路由器丟包(好比緩存滿了,新進來的數據包就會丟失),就須要發現丟了哪個包,以及如何從新發送這個包。這就要依靠 TCP 協議。
簡單說,TCP 協議的做用是,保證數據通訊的完整性和可靠性,防止丟包。code
TCP三次握手創建過程簡單說明:
1.由客戶端(用戶)發送創建TCP鏈接的請求報文,其中報文中包含seq序列號,是由發送端隨機生成的。
而且還將報文中SYN字段置爲1,表示須要創建TCP鏈接請求。
2.服務端(就是百度服務器)會回覆客戶端(用戶)發送的TCP鏈接請求報文,其中包含seq序列號,也是由回覆端隨機生成的,
而且將回復報文的SYN字段置1,並且會產生ACK驗證字段,ACK驗證字段數值是在客戶端發過來的seq序列號基礎上加1進行回覆:
而且還會回覆ack確認控制字段,以便客戶端收到信息時,知曉本身的TCP創建請求已獲得了確認。
3.客戶端收到服務端發送的TCP創建請求後,會使本身的原有序列號加1進行再次發送序列號,
而且再次回覆ACK驗證請求,在B端發送過來的seq基礎上加1,進行回覆;同時也會回覆ack確認控制字段,
以便B收到信息時,知曉本身的TCP創建請求已經獲得了確認。
4.客戶端發出訪問網站相應頁面請求(發出http協議請求報文)
5.斷開tcp協議四次揮手過程
當客戶端和服務器經過三次握手創建了TCP鏈接之後,當數據傳送完畢,確定是要斷開TCP鏈接的啊。那對於TCP的斷開鏈接,這裏就有了神祕的「四次揮手」。 第一次揮手: Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態。 第二次揮手: Server收到FIN後,發送一個ACK給Client,確認序號爲收到序號+1(與SYN相同,一個FIN佔用一個序號),Server進入CLOSE_WAIT狀態。 第三次揮手: Server發送一個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態。 第四次揮手: Client收到FIN後,Client進入TIME_WAIT狀態,接着發送一個ACK給Server,確認序號爲收到序號+1,Server進入CLOSED狀態,完成四次揮手。
簡單來講就是:
1) 拿url去DNS解析IP地址,(查本地DNS緩存)
2) 瀏覽器 根據IP地址 80端口,創建tcp鏈接
3) 發送http請求 (請求行 請求頭 請求體)
請求行: 請求方法 url HTTP版本
請求頭: 鍵值對
host: 主機名
user-agent: 客戶端瀏覽器信息
請求體:
GET
POST
4) 服務器端給客戶端發送http響應
狀態碼: 200 OK
響應內容: 頁面交給瀏覽器解析
5) 斷開tcp鏈接
二.安裝nginx
1.先在瀏覽器上找一個nginx安裝包,而後用wget來下載,我下的是1.17.1的安裝包
2.下載完以後而後用tar -zxvf進行解壓,解壓到/usr/local/src下面
3.在用wget下載yum install openssl openssl-devel zlib zlib-devel pcre pcre-devel和yum install gcc -c++
4在.cd /usr/local/src/nginx-1.17.1
5.在用make按照生成的Makefile進行編譯
在make install : 將編譯好的二進制文件,安裝到系統,復位到響應的位置
6.cd /usr/local/nginx/sbin
7.在檢測配置文件語法是否正確 ./nginx -t
8.進入./nginx
9.ps aux | grep nginx
10.setenforce 0
11.在關閉防火牆 systemctl stop firewalld.service
12.最後查看一下本身的ip地址
13.而後在瀏覽器上輸入本身的ip地址
出現這個即表示正確