nginx常用功能介绍
一、什么是nginx?
nginx是一款輕量級的Web 服務器 、反向代理服務器及電子郵件(IMAP/POP3)代理服務器。主要有反向代理,負載均衡的功能。
官方網站為:http://nginx.org/ 。它是一款免費開源的高性能 HTTP 代理服務器及反向代理服務器(Reverse Proxy)產品,同時它還可以提供 IMAP/POP3 郵件代理服務等功能。它高并發性能很好,官方測試能夠支撐 5 萬的并發量;運行時內存和 CPU 占用率低,配置簡單,容易上手,而且運行非常穩定。
http://tengine.taobao.org/ :淘寶網發起。
二、Nginx的常用功能
1、反向代理
這是 Nginx 服務器作為 WEB 服務器的主要功能之一,客戶端向服務器發送請求時,會首先經過 Nginx 服務器,由服務器將請求分發到相應的 WEB 服務器。正向代理是代理客戶端,而反向代理則是代理服務器,Nginx 在提供反向代理服務方面,通過使用正則表達式進行相關配置,采取不同的轉發策略,配置相當靈活,而且在配置后端轉發請求時,完全不用關心網絡環境如何,可以指定任意的IP地址和端口號,或其他類型的連接、請求等。
2、負載均衡
這也是 Nginx 最常用的功能之一,負載均衡,一方面是將單一的重負載分擔到多個網絡節點上做并行處理,每個節點處理結束后將結果匯總返回給用戶,這樣可以大幅度提高網絡系統的處理能力;另一方面將大量的前端并發請求或數據流量分擔到多個后端網絡節點分別處理,這樣可以有效減少前端用戶等待相應的時間。而 Nginx 負載均衡都是屬于后一方面,主要是對大量前端訪問或流量進行分流,已保證前端用戶訪問效率,并可以減少后端服務器處理壓力。
3、Web 緩存
在很多優秀的網站中,Nginx 可以作為前置緩存服務器,它被用于緩存前端請求,從而提高 Web服務器的性能。Nginx 會對用戶已經訪問過的內容在服務器本地建立副本,這樣在一段時間內再次訪問該數據,就不需要通過 Nginx 服務器向后端發出請求。減輕網絡擁堵,減小數據傳輸延時,提高用戶訪問速度。
三、什是反向代理
反向代理和正向代理的區別就是:正向代理代理客戶端,反向代理代理服務器。
反向代理,其實客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問,我們只需要將請求發送到反向代理服務器,由反向代理服務器去選擇目標服務器獲取數據后,在返回給客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,暴露的是代理服務器地址,隱藏了真實服務器IP地址。
理解這兩種代理的關鍵在于代理服務器所代理的對象是什么,正向代理代理的是客戶端,我們需要在客戶端進行一些代理的設置。而反向代理代理的是服務器,作為客戶端的我們是無法感知到服務器的真實存在的。
四、什么是負載均衡?
將服務器接收到的請求按照規則分發的過程
weight輪詢(默認):接收到的請求按照順序逐一分配到不同的后端服務器,即使在使用過程中,某一臺后端服務器宕機,nginx會自動將該服務器剔除出隊列,請求受理情況不會受到任何影響。 這種方式下,可以給不同的后端服務器設置一個權重值(weight),用于調整不同的服務器上請求的分配率;權重數據越大,被分配到請求的幾率越大;該權重值,主要是針對實際工作環境中不同的后端服務器硬件配置進行調整的。
ip_hash: 每個請求按照發起客戶端的ip的hash結果進行匹配,這樣的算法下一個固定ip地址的客戶端總會訪問到同一個后端服務器,這也在一定程度上解決了集群部署環境下session共享的問題。
fair: 智能調整調度算法,動態的根據后端服務器的請求處理到響應的時間進行均衡分配,響應時間短處理效率高的服務器分配到請求的概率高,響應時間長處理效率低的服務器分配到的請求少;結合了前兩者的優點的一種調度算法。但是需要注意的是nginx默認不支持fair算法,如果要使用這種調度算法,請安裝upstream_fair模塊
url_hash: 按照訪問的url的hash結果分配請求,每個請求的url會指向后端固定的某個服務器,可以在nginx作為靜態服務器的情況下提高緩存效率。同樣要注意nginx默認不支持這種調度算法,要使用的話需要安裝nginx的hash軟件包
總結
以上是生活随笔為你收集整理的nginx常用功能介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx.conf配置文件
- 下一篇: 【Flask项目】项目准备之-创建git