天天看點

Nginx配置知識點梳理

Nginx是現在最火的伺服器web和反向代理伺服器,反向代理是指以代理伺服器來接受internet上的連接配接請求,然後将請求轉發給内部網絡上的伺服器,并将從伺服器上得到的結果傳回給internet上請求連接配接的用戶端,此時代理伺服器對外就表現為一個反向代理伺服器。另外在高并發方面,有比較優異的表現。

Nginx是一款輕量級的Web伺服器、反向代理伺服器,基于 REST 架構風格,以統一資源描述符URI 或者統一資源定位符URL 作為溝通依據,通過 HTTP 協定提供各種網絡服務。由于它的記憶體占用少,啟動極快,高并發能力強,在網際網路項目中廣泛應用。 

1整體介紹 

Nginx是一款自由的、開源的、高性能的HTTP伺服器和反向代理伺服器;同時也是一個IMAP、POP3、SMTP代理伺服器;Nginx可以作為一個HTTP伺服器進行網站的釋出處理,另外Nginx可以作為反向代理進行負載均衡的實作。 

1.1反向代理 

反向代理了解架構如下: 

Nginx配置知識點梳理

反向代理(Reverse Proxy)方式是指以代理伺服器來接受 internet 上的連接配接請求,然後将請求轉發給内部網絡上的伺服器,并将從伺服器上得到的結果傳回給 internet 上請求連接配接的用戶端,此時代理伺服器對外就表現為一個反向代理伺服器。 

Nginx配置知識點梳理

如圖,儲存配置檔案後啟動 Nginx,這樣當我們通路 XX.XX.X.XXX 的時候,就相當于通路 XX.XX.X.XXX:80 了。 

1.2負載均衡 

負載均衡了解圖: 

Nginx配置知識點梳理

負載均衡,其原理就是将資料流量分攤到多個伺服器執行,減輕每台伺服器的壓力,多台伺服器(叢集)共同完成工作任務,進而提高了資料的吞吐量,多在高并發情況下使用。可使用的負載均衡政策有:輪詢(預設)、權重、ip_hash、url_hash(第三方)、fair(第三方)。 

Nginx配置知識點梳理

如圖,儲存配置檔案後啟動 Nginx,這樣當我們通路 XX.XX.X.XXX/umc 的時候,就相當于通路 XX.XX.X.XXX:1010 或者XX.XX.X.XXX:1010了,因為 Nginx 會自動判斷伺服器的狀态,如果伺服器處于不能通路(伺服器當機)的狀态,就不會跳轉到這台伺服器,是以也避免了一台伺服器當機影響使用的情況。 

1.3動靜分離 

Nginx 本身也是一個靜态資源的伺服器,當隻有靜态資源的時候,就可以使用 Nginx 來做伺服器,同時現在很流行的動靜态分離,就可以通過 Nginx 來實作,首先看看 Nginx 做靜态資源伺服器。 

Nginx配置知識點梳理

如圖,這樣如果通路 http:// IP 就會預設通路到上邊的指定路徑當中index.html,如果一個網站隻是靜态頁面的話,那麼就可以通過這種方式來實作部署。 

動靜分離,常用于前後端分離,Nginx提供的動靜分離是指把動态請求和靜态請求分離開,合适的伺服器處理相應的請求,使整個伺服器系統的性能、效率更高。Nginx可以根據配置對不同的請求做不同轉發,這是動态分離的基礎。靜态請求對應的靜态資源可以直接放在Nginx上做緩沖,更好的做法是放在相應的緩沖伺服器上。動态請求由相應的後端伺服器處理。 

2安裝配置 

本次以Nginx1.14.2版本為例在linux伺服器環境上進行安裝部署,具體操作如下:  

2.1環境準備 

安裝make: 

Nginx配置知識點梳理

安裝g++: 

Nginx配置知識點梳理

安裝pcre和pcre-devel: 

Nginx配置知識點梳理

安裝zlib zlib提供了很多壓縮和解方式,nginx需要zlib對http進行gzip: 

Nginx配置知識點梳理

安裝openssl openssl是一個安全套接字層密碼庫,nginx要支援https,需要使用openssl: 

Nginx配置知識點梳理

2.2安裝配置 

下載下傳nginx: 

Nginx配置知識點梳理

進入檔案夾: 

Nginx配置知識點梳理

解壓: 

Nginx配置知識點梳理

打開檔案路徑: 

Nginx配置知識點梳理

編譯檔案: 

Nginx配置知識點梳理

安裝: 

Nginx配置知識點梳理

更改配置檔案: 

Nginx配置知識點梳理

方式二:也可以将nginx.conf檔案直接通過xftp上傳到該位置,注意将原有檔案進行備份: 

Nginx配置知識點梳理

讓配置立即生效: 

Nginx配置知識點梳理

2.3執行啟動 

進入sbin目錄:

Nginx配置知識點梳理

啟動nginx: 

Nginx配置知識點梳理

停止指令:  

Nginx配置知識點梳理

3高可用配置 

Keepalived是一個高可用解決方案,主要是用來防止伺服器單點發生故障,可以通過和Nginx配合來實作Web服務的高可用。 

3.1環境準備 

通過以下指令安裝Keepalived: 

Nginx配置知識點梳理

設定為系統服務: 

Nginx配置知識點梳理

關閉SElinux、配置keepalived相關配置 : 

Nginx配置知識點梳理

進入後做如下修改: 

Nginx配置知識點梳理

修改完成後,配置立即生效: 

Nginx配置知識點梳理

修改keepalived配置,主從機不同的地方通過黃色高亮顯示: 

Nginx配置知識點梳理

備份:cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak: 

Nginx配置知識點梳理
Nginx配置知識點梳理
Nginx配置知識點梳理

3.2腳本配置 

配置 chk_nginx.sh檔案: 

Nginx配置知識點梳理

添加如下内容: 

Nginx配置知識點梳理

腳本進行授權: 

Nginx配置知識點梳理

修改防火牆,添加對虛拟IP的監聽: 

Nginx配置知識點梳理

3.3啟停服務 

開啟keepalived服務: 

Nginx配置知識點梳理

停止keepalived服務: 

Nginx配置知識點梳理

4心得體會 

本次項目Nginx的配置促使自己在網絡層面有了一定的了解,尤其是Nginx的幾個核心功能,具體包含反向代理、負載均衡等,但是這隻是剛剛開始,需要學習的内容還有很多,現從後續規劃、做事方法、疊代更新方面總結如下。 

4.1後續規劃 

每一次搭建K8S叢集環境都曾配置過Nginx,但是都隻是在照貓畫虎,隻是把配置檔案拿過來進行使用,并不了解配置檔案中每段代碼的含義,隻會配置某個關鍵字段資訊,經過本次的知識點梳理學習到了很多,但是學無止境,對nginx的了解還是不足,例如設定權重、正向代理等等了解得不夠全面,後續更要在邏輯上對每行代碼深入研究。 

4.2做事方法 

4.3疊代更新 

繼續閱讀