3分鐘全面了解nginx配置內容「nginx配置server無法訪問」

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

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

整體介紹

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

1.反向代理

反向代理理解架構如下:

Nginx配置知識點梳理

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

Nginx配置知識點梳理

如圖,保存配置文件後啟動 Nginx,這樣當我們訪問 XX.XX.X.XXX 的時候,就相當於訪問 XX.XX.X.XXX:80 了。

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 會自動判斷伺服器的狀態,如果伺服器處於不能訪問(伺服器宕機)的狀態,就不會跳轉到這台伺服器,所以也避免了一台伺服器宕機影響使用的情況。

3.動靜分離

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

Nginx配置知識點梳理

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

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

安裝配置

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

1.環境準備

安裝make:

Nginx配置知識點梳理

安裝g++:

Nginx配置知識點梳理

安裝pcre和pcre-devel:

Nginx配置知識點梳理

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

Nginx配置知識點梳理

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

Nginx配置知識點梳理

2.安裝配置

下載nginx:

Nginx配置知識點梳理

進入文件夾:

Nginx配置知識點梳理

解壓:

Nginx配置知識點梳理

打開文件路徑:

Nginx配置知識點梳理

編譯文件:

Nginx配置知識點梳理

安裝:

Nginx配置知識點梳理

更改配置文件:

Nginx配置知識點梳理

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

Nginx配置知識點梳理

讓配置立即生效:

Nginx配置知識點梳理

3.執行啟動

進入sbin目錄:

Nginx配置知識點梳理

啟動nginx::

Nginx配置知識點梳理

停止命令:

Nginx配置知識點梳理

高可用配置

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

1.環境準備

通過以下命令安裝Keepalived:

Nginx配置知識點梳理

設置為系統服務:

Nginx配置知識點梳理

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

Nginx配置知識點梳理

進入後做如下修改:

Nginx配置知識點梳理

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

Nginx配置知識點梳理

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

Nginx配置知識點梳理

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

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

2.腳本配置

配置 chk_nginx.sh文件:

Nginx配置知識點梳理

添加如下內容:

Nginx配置知識點梳理

腳本進行授權:

Nginx配置知識點梳理

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

Nginx配置知識點梳理

3.啟停服務

開啟keepalived服務:

Nginx配置知識點梳理

停止keepalived服務:

Nginx配置知識點梳理

心得體會

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

1.後續規劃

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

2.做事方法

通過平時工作過程中對技能點的隨手記錄,在撰寫這篇文章的過程中,再一次梳理了自己的邏輯。在後續的工作中,應該文檔分門別類地整理出來,例如教程類的內容歸為一類、錯誤信息及解決方案的內容歸為一類、知識點歸為一類,以便自己對知識進行更新迭代及快速查找。筆者認為寫文檔不僅沒有浪費時間,而且通過文檔的撰為我提供了很多幫助,比如代碼的復用、類似錯誤信息的快速調試等,節省了很多時間。

3.迭代更新

近期在某些項目配置過程中遇到了內網80埠及外網埠ESB服務轉換時默認攜帶外網配置埠的問題,解決本次問題是撰寫該文檔的主要原因,具體解決方法是通過nginx配置兩個server,通過監控不同的埠使其指向不同的server來解決本次問題,但是在工作過程中發現有時會出現邏輯不清晰的情況,特別是在網路層面的理解嚴重缺失,後續還需要不斷地深入了解。

伴隨著自身專業知識的不斷積累,對知識的認知也不斷提高。當回過頭來看自己之前記錄的工作文檔,會發現有存在很多漏點,這時就需要再次完善工作文檔。在這個完善的過程中又把初學時的理解和現在的理解做了比較,可以認識到當時的自己有哪些不足,思維邏輯有了哪些改善。技術、認知在不斷更新,工作文檔也在不斷更新,在這個不斷迭代更新的過程中,使自己的知識點不知不覺連成了線。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/284317.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-22 15:07
下一篇 2024-12-22 15:07

相關推薦

發表回復

登錄後才能評論