Nginx-技術專題-入門教程

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":" Nginx是什麼"},{"type":"text","text":":"},{"type":"codeinline","content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"Nginx是一個高性能的HTTP和反向代理web服務器。同時也提供了IMAP/POP3/SMTP服務。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"       "},{"type":"text","marks":[{"type":"strong"}],"text":"Nginx的特點"},{"type":"text","text":":"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"開源、佔內存少、輕量級、高性能(有報告表面nginx能支持高達 500000個併發連接數)、支持熱部署。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"       在正式介紹nginx之前,我們先來介紹幾個相關的名詞:"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"正向代理、反向代理、負載均衡、動靜分離"},{"type":"text","text":"。"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"正向代理、反向代理"}]},{"type":"horizontalrule"},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"       正向代理和反向代理的主要區別在代理的對象不一樣:"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"正向代理代理的對象是客戶端;反向代理代理的對象是服務端。"}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"       正向代理,"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"代理的對象是客戶端"},{"type":"text","text":"。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" 順着請求的方向進行代理。"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"正向代理的過程,隱藏了真實的請求客戶端,服務端不知道真實的客戶端是誰,客戶端請求的服務都被代理服務器代替來請求。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"       A同學在大衆創業、萬衆創新的大時代背景下開啓他的創業之路,目前他遇到的最大的一個問題就是啓動資金,於是他決定去找馬雲爸爸借錢,可想而知,最後碰一鼻子灰回來了,情急之下,他想到一個辦法,找關係開後門,經過一番消息打探,原來A同學的大學老師王老師是馬雲的同學,於是A同學找到王老師,託王老師幫忙去馬雲那借500萬過來,當然最後事成了。不過馬雲並不知道這錢是A同學借的,馬雲是借給王老師的,最後由王老師轉交給A同學。這裏的王老師在這個過程中扮演了一個非常關鍵的角色,就是代理,也可以說是正向代理,"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"王老師代替A同學辦這件事,這個過程中,真正借錢的人是誰,馬雲是不知道的,這點非常關鍵。"}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"       反向代理,"},{"type":"text","marks":[{"type":"strong"}],"text":"代理的對象是服務端"},{"type":"text","text":"。"}]}]},{"type":"paragraph","attrs":{"indent":1,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":" 反向代理的過程,隱藏了真正的服務端。客戶端不知道真正的服務端是誰。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"       撥打10086客服電話,可能一個地區的10086客服有幾個或者幾十個,你永遠都不需要關心在電話那頭的是哪一個,叫什麼,男的,還是女的,漂亮的還是帥氣的,你都不關心,你關心的是你的問題能不能得到專業的解答,你只需要撥通了10086的總機號碼,電話那頭總會有人會回答你,只是有時慢有時快而已。那麼這裏的10086總機號碼就是我們說的反向代理。"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"客戶不知道真正提供服務人的是誰"},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}}],"text":" 所以,正向代理、反向代理咱們只要記住一點就好了,"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"正向代理的對象是客戶端;反向代理的對象是服務端"},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}}],"text":"。正向代碼服務端不知道客戶端,隱藏的是客戶端;反向代理客服端不知道服務端,隱藏的是服務端。"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"負載均衡"}]},{"type":"horizontalrule"},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"負載均衡英文名稱爲Load Balance,其含義就是指將負載(工作任務)進行平衡、分攤到多個操作單元上進行運行,例如FTP服務器、Web服務器、企業核心應用服務器和其它主要任務服務器等,從而協同完成工作任務。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":" "},{"type":"text","marks":[{"type":"strong"}],"text":"負載均衡"},{"type":"text","text":"說白了就是單個服務器處理不過來了,通過增加服務器數量,把客戶端的請求平均分佈在不同的服務器上去處理,平衡工作量。一般在高併發場景下使用。"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"動靜分離"}]},{"type":"horizontalrule"},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":" 動靜分離是指在web服務器架構中,將靜態頁面與動態頁面或者靜態內容接口和動態內容接口分開不同系統訪問的架構設計方法,進而提升整個服務訪問性能和可維護性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" 將動態請求和靜態請求區分訪問。html、css、js屬於靜態資源;url請求、jsp、servlet屬於動態資源。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#F5222D","name":"red"}},{"type":"strong"}],"text":"如何動靜分離:把靜態資源放在靜態資源服務器上(Nginx服務器),動態資源部署在tomcat服務器上。 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" Nginx根據客戶端請求的url來判斷請求的是否是靜態資源,如果請求的url包含jpg、png,則由Nginx處理;如果請求的url是.php或者.jsp等等,這個時候這個請求是動態的,將轉發給tomcat處理。"}]},{"type":"heading","attrs":{"align":null,"level":1},"content":[{"type":"text","text":"Nginx安裝"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"1.1 windows下nginx的安裝"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1.1.1 nginx下載"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"        進入官網"},{"type":"link","attrs":{"href":"https://links.jianshu.com/go?to=http%3A%2F%2Fnginx.org%2Fen%2Fdownload.html","title":null},"content":[{"type":"text","text":"http://nginx.org/en/download.html"}]},{"type":"text","text":" 下載對應的穩定版本到本地(比如這裏我們下載的是nginx-1.18.0.zip)。"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/8c/8c5103774c5bae6537cae125dfd6464b.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1.1.2 nginx安裝&啓動"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"       下載成功之後,解壓下載的文件到指定目錄。雙擊nginx.exe就啓動了nginx。nginx默認監聽的是80端口。"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/08/08fe1e7b9a60ccc87b88edf5e7a6180e.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":1,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在瀏覽器裏面輸入 http://127.0.0.1:80 成功訪問到nginx。"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/79/79e1584a0e67beedf0db1e73c0e18042.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"1.2 linux下nginx安裝"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1.2.1 nginx依賴安裝"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"      安裝nginx確認系統中正確安裝了"},{"type":"text","marks":[{"type":"strong"}],"text":"gcc、pcre-devel、zlib-devel、openssl、openssl-devel"},{"type":"text","text":"。"}]},{"type":"codeblock","attrs":{"lang":null},"content":[{"type":"text","text":"# 查看是否安裝了**gcc、pcre-devel、zlib-devel、openssl、openssl-devel**\nyum list installed | grep \"gcc\" # 判斷是否按照了gcc\nyum list installed | grep \"pcre-devel\" # 判斷是否按照了pcre-devel\nyum list installed | grep \"zlib-devel\" # 判斷是否按照了zlib-devel\nyum list installed | grep \"openssl\" # 判斷是否按照了openssl\nyum list installed | grep \"openssl-devel\" # 判斷是否按照了openssl-devel\n# 哪個沒有安裝就相應的安裝上\nyum -y install gcc pcre-devel zlib-devel openssl openssl-devel"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"1.2.2 nginx下載"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"       進入官網下載對應系統的穩定版本。"},{"type":"link","attrs":{"href":"https://links.jianshu.com/go?to=http%3A%2F%2Fnginx.org%2Fen%2Fdownload.html","title":null},"content":[{"type":"text","text":"http://nginx.org/en/download.html"}]}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/89/893efa62e13635d953b5dead05761632.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":3}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章