linux nginx是一個高性能的http和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務;其特點是占有內存少,并發能力強,事實上nginx的并發能力在同類型的網頁服務器中表現較好。
1. nginx是什么?
相信很多正在學習Linux或者已經在從事運維工作的朋友都有聽過nginx,那它究竟是什么呢?為什么這么火?
首先nginx是由俄羅斯人發明的一款高性能的web服務器,它同早期的apache,iis,Lighttpd等都具有web服務器的功能,能夠發布網站代碼等資源,為用戶提供信息資訊。但是nginx的功能不單單只是做為web服務器,它還可以用來做反向代理和負載均衡服務器,并且整體性能非常強大,在web前端服務器目前是企業的首選。
在國外的[Netcraft News]這個站點統計了全球最熱門的網站所使用的web服務器,其中nginx目前一直穩居第一位:
目前,我們國內基本上大多數的互聯網企業門戶站點也都采用的是nginx,包括
<p>阿里巴巴開源鏡像站-OPSX鏡像站-阿里云開發者社區 developer.aliyun.com/mirror/ 網易開源鏡像站 mirrors.163.com/ 清華大學開源軟件鏡像站 | Tsinghua Open Source Mirror mirrors.tuna.tsinghua.edu.cn </p>
等等。
2. nginx能做什么?
在后面幾篇文章中,會詳細實戰nginx的各大用法。在這里,先做一個簡單介紹:
2.1 nginx可以做反向代理:
nginx的反向代理是nginx的是個非常重要的功能,它可以隱藏后端服務器的數量,并且保證后端服務器免受攻擊,示意圖如下:
當用戶向這個網站發起請求,其實對用戶這個請求進行處理的是后端真實服務器,中間的服務器就是反向代理服務器。
2.2 nginx可以做負載均衡:
nginx的負載均衡其實是反向代理的延伸,當單臺后端服務器無法處理前端龐大的請求時,可以為后端多準備幾臺服務器,共同分攤流量,這就是負載均衡,也叫均衡負載,示意圖如下:
2.3 nginx可以做域名重定向:
重定向也是web服務器非常重要的功能,我來舉一個例子:假設你們公司現在有一個域名,很多老用戶已經習慣了是這個域名來訪問你們的網站。當公司進行改造并更換域名時,就可能出現失去許多老用戶的情況。我們可以通過nginxd的重定向來解決這個問題,只需將訪問原域名的流量重定向到新域名即可。這個技術的實戰,會在后面通過實例演示。
除了進行域名重定向,還可以進行內部重定向,例如當用戶訪問不存在的資源時,我們希望提供一些指導信息或者將其重定向至首頁。這時,就可以寫內部重定向實現了。
2.4 nginx可以做動靜分離:
動靜分離是nginx的反向代理功能之一,它非常強大和特別,通常獨立地被討論。因為nginx處理靜態資源的能力非常強,效率非常高。所以很多時候,我們會將用戶請求的靜態資源直接交由nginx代理服務器處理,然后把動態的應用程序代理到后端,給應用服務器處理,以此來提高用戶體驗,動靜分離示意圖如下:
Nginx具備眾多強大功能,包括緩存服務器、郵件代理服務器和微服務網關等。掌握Linux或執業運維工程師,都應當學習并精通這一強大的服務應用。