天天看點

Nginx安裝配置說明

随着網際網路時代的發展,使用電腦、手機及其他電子裝置上網是日常生活中最常見的活動,那麼這個上網過程是怎麼實作的呢?主要是靠代理伺服器。代理是在伺服器和用戶端之間假設的一層伺服器,代理将接收的用戶端請求轉發給伺服器,然後将服務端的響應轉發給用戶端。

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

1整體介紹 

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

1.1反向代理 

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

Nginx安裝配置說明

如圖,儲存配置檔案後啟動Nginx,這樣當我們通路localhost的時候,就相當于通路localhost:8080。 

1.2負載均衡 

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

Nginx安裝配置說明

如圖,儲存配置檔案後啟動Nginx,這樣當我們通路localhost的時候,就相當于通路localhost:8080或者localhost:8081。因為Nginx會自動判斷伺服器的狀态,如果伺服器處于不能通路(伺服器挂了),就不會跳轉到這台伺服器,是以也避免某台伺服器挂了影響使用。 

1.3動靜分離 

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

Nginx安裝配置說明

如圖,這樣如果通路http://localhost就會預設通路到E盤wwwroot目錄下面的index.html,如果一個網站隻是靜态頁面的話,那麼就可以通過這種方式來實作部署。 

Nginx安裝配置說明

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

2安裝配置 

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

2.1環境準備 

安裝make: 

Nginx安裝配置說明

安裝g++:

Nginx安裝配置說明

安裝pcre和pcre-devel: 

Nginx安裝配置說明

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

Nginx安裝配置說明

安裝opensslopenssl是一個安全套接字層密碼庫,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心得體會 

通過撰寫本篇文檔,意識到在實際項目工作過程中随手記錄的重要性。在記錄後,也需要相應的把記錄内容整理到工作文檔内,不斷疊代完善自身能力。現從知識收獲、意識形态、工作總結方面總結如下。 

4.1知識收獲 

通過學習Nginx,了解了其很多特點: 

1.跨平台:可以在大多數UnixlikeOS編譯運作,而且也有Windows的移植版本。 

2.配置簡單:風格跟程式開發一樣,容易上手。 

3.非阻塞、高并發連接配接:資料複制時,磁盤I/O的第一階段是非阻塞的。官方測試能夠支撐5萬并發連接配接,在實際生産環境中跑到2~3萬并發連接配接數.(這得益于Nginx使用了最新的epoll模型) 

4.事件驅動:通信機制采用epoll模型,支援更大的并發連接配接。 

5.master/worker結構:一個master程序,生成一個或多個worker程序。 

6.記憶體消耗小:處理大并發的請求記憶體消耗非常小。在3萬并發連接配接下,開啟的10個Nginx程序才消耗150M記憶體(15M*10=150M) 

7.成本低廉:開源軟體,可以免費使用。 

8.内置的健康檢查功能:如果NginxProxy後端的某台Web伺服器當機了,不會影響前端通路。 

9.節省帶寬:支援GZIP壓縮,可以添加浏覽器本地緩存的Header頭。 

10.穩定性高:用于反向代理,當機的機率微乎其微。 

4.2意識形态 

4.3工作總結 

繼續閱讀