91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nginx有哪些特點

發布時間:2021-12-10 16:13:08 來源:億速云 閱讀:144 作者:iii 欄目:大數據

本篇內容主要講解“nginx有哪些特點”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“nginx有哪些特點”吧!

1.Nginx是什么?

    Nginx就是反向代理服務器。首先我們先來看看什么是代理服務器,代理服務器一般是指局域網內部的機器通過代理服務發送請求到互聯網上的服務器,代理服務器一般作用于客戶端。比如GoAgent,FQ神器。

2.Nginx有哪些特點?

    (1)跨平臺:Nginx 可以在大多數 Unix like OS編譯運行,而且也有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)成本低廉:Nginx為開源軟件,可以免費使用。而購買F5 BIG-IP、NetScaler等硬件負載均衡交換機則需要十多萬至幾十萬人民幣

    (8)內置的健康檢查功能:如果 Nginx Proxy 后端的某臺 Web 服務器宕機了,不會影響前端訪問。

    (9)節省帶寬:支持 GZIP 壓縮,可以添加瀏覽器本地緩存的 Header 頭。

    (10)穩定性高:用于反向代理,宕機的概率微乎其微

3.Nginx是如何處理一個請求?

    首先,nginx在啟動時,會解析配置文件,得到需要監聽的端口與ip地址,然后在nginx的master進程里面,先初始化好這個監控的socket(創建socket,設置addrreuse等選項,綁定到指定的ip地址端口,再listen),然后再fork(一個現有進程可以調用fork函數創建一個新進程。由fork創建的新進程被稱為子進程 )出多個子進程出來,然后子進程會競爭accept新的連接。此時,客戶端就可以向nginx發起連接了。當客戶端與nginx進行三次握手,與nginx建立好一個連接后,此時,某一個子進程會accept成功,得到這個建立好的連接的socket,然后創建nginx對連接的封裝,即ngx_connection_t結構體。接著,設置讀寫事件處理函數并添加讀寫事件來與客戶端進行數據的交換。最后,nginx或客戶端來主動關掉連接,到此,一個連接就完成了自己的使命.

    當然,nginx也是可以作為客戶端來請求其它server的數據的(如upstream模塊),此時,與其它server創建的連接,也封裝在ngx_connection_t中。作為客戶端,nginx先獲取一個ngx_connection_t結構體,然后創建socket,并設置socket的屬性( 比如非阻塞)。然后再通過添加讀寫事件,調用connect/read/write來調用連接,最后關掉連接,并釋放ngx_connection_t。


說明:

    nginx在實現時,是通過一個連接池來管理的,每個worker進程都有一個獨立的連接池,連接池的大小是worker_connections。這里的連接池里面保存的其實不是真實的連接,它只是一個worker_connections大小的一個ngx_connection_t結構的數組。并且,nginx會通過一個鏈表free_connections來保存所有的空閑ngx_connection_t,每次獲取一個連接時,就從空閑連接鏈表中獲取一個,用完后,再放回空閑連接鏈表里面。 

    在這里,很多人會誤解worker_connections這個參數的意思,認為這個值就是nginx所能建立連接的最大值。其實不然,這個值是表示每個worker進程所能建立連接的最大值,所以,一個nginx能建立的最大連接數,應該是worker_connections * worker_processes。當然,這里說的是最大連接數,對于HTTP請求本地資源來說,能夠支持的最大并發數量是worker_connections * worker_processes,而如果是HTTP作為反向代理來說,最大并發數量應該是worker_connections * worker_processes/2。因為作為反向代理服務器,每個并發會建立與客戶端的連接和與后端服務的連接,會占用兩個連接


4.Nginx是做了哪些工作?

     Nginx本身做的工作實際很少,當它接到一個HTTP請求時,它僅僅是通過查找配置文件將此次請求映射到一個location block,而此location中所配置的各個指令則會啟動不同的模塊去完成工作,因此模塊可以看做Nginx真正的勞動工作者。


    通常一個location中的指令會涉及一個handler模塊和多個filter模塊(當然,多個location可以復用同一個模塊)。handler模塊負責處理請求,完成響應內容的生成,而filter模塊對響應內容進行處理。 

    Nginx的模塊直接被編譯進Nginx,因此屬于靜態編譯方式。啟動Nginx后,Nginx的模塊被自動加載,不像Apache,首先將模塊編譯為一個so文件,然后在配置文件中指定是否進行加載。在解析配置文件時,Nginx的每個模塊都有可能去處理某個請求,但是同一個處理請求只能由一個模塊來完成。

到此,相信大家對“nginx有哪些特點”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

渝中区| 云浮市| 祁东县| 荆门市| 习水县| 通许县| 芦溪县| 玉田县| 乃东县| 宜阳县| 河间市| 大邑县| 民县| 湘西| 罗山县| 师宗县| 金寨县| 庄浪县| 抚远县| 句容市| 万山特区| 喀喇沁旗| 东阳市| 余庆县| 腾冲县| 富民县| 吴堡县| 酉阳| 张家口市| 政和县| 婺源县| 兴化市| 扶余县| 商水县| 平和县| 聊城市| 阿拉善左旗| 铜梁县| 乐陵市| 西乌珠穆沁旗| 古交市|