日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx系列一:Nginx介绍与Nginx工作原理分析

發(fā)布時間:2023/12/10 Nginx 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx系列一:Nginx介绍与Nginx工作原理分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一:Nginx概述

Nginx ("engine x") 是一個高性能的輕量級的 HTTP 和反向代理、負(fù)載平衡web服務(wù)器。

nginx 的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好市場占用率很高,中國大陸使用 nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。

Nginx以事件驅(qū)動的方式編寫(整個事件驅(qū)動機(jī)制基本框架就是linux下的select,poll,epoll這幾個IO多路復(fù)用模式),所以有非常好的性能,有報告表明能支持高達(dá) 50,000 個并發(fā)連接數(shù)。

Nginx因為它的穩(wěn)定性高、豐富的模塊庫、靈活的配置和低系統(tǒng)資源的消耗而聞名。

業(yè)界一致認(rèn)為它是Apache2.2+mod_proxy_balancer的輕量級代替者,不僅是因為響應(yīng)靜態(tài)頁面的速度非常快,而且它的模塊數(shù)量達(dá)到Apache的近2/3。對proxy和rewrite模塊的支持很徹底,同時還支持 CGI 協(xié)議的動態(tài)語言,比如 perl、php等。但是不支持 java,Java 程序只能通過與 tomcat 配合完成。

?

二:Nginx基本特性與功能

?

  • 靜態(tài)資源的web服務(wù)器,能緩存打開的文件描述符
  • 支持緩存加速、負(fù)載均衡機(jī)制
  • http、smtp、pop3協(xié)議的反向代理服務(wù)器;
  • 模塊化的結(jié)構(gòu)。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。
  • 支持SSL 和 TLSSNI.
  • 支持熱部署

Nginx具有很高的穩(wěn)定性。其它HTTP服務(wù)器,當(dāng)遇到訪問的峰值,或者有人惡意發(fā)起慢速連接時,也很可能會導(dǎo)致服務(wù)器物理內(nèi)存耗盡頻繁交換,失去響應(yīng),只能重啟服務(wù)器。例如當(dāng)前apache一旦上到200個以上進(jìn)程,web響應(yīng)速度就明顯非常緩慢了。而Nginx采取了分階段資源分配技術(shù),使得它的CPU與內(nèi)存占用率非常低。nginx官方表示保持10,000個沒有活動的連接,它只占2.5M內(nèi)存,所以類似DOS這樣的攻擊對nginx來說基本上是毫無用處的。就穩(wěn)定性而言,nginx比lighthttpd更勝一籌。

Nginx支持熱部署。它的啟動特別容易, 并且?guī)缀蹩梢宰龅?*24不間斷運行,即使運行數(shù)個月也不需要重新啟動。你還能夠在不間斷服務(wù)的情況下,對軟件版本進(jìn)行進(jìn)行升級。

Nginx采用master-slave模型,能夠充分利用SMP的優(yōu)勢,且能夠減少工作進(jìn)程在磁盤I/O的阻塞延遲。當(dāng)采用select()/poll()調(diào)用時,還可以限制每個進(jìn)程的連接數(shù)。

Nginx代碼質(zhì)量非常高,代碼很規(guī)范,手法成熟, 模塊擴(kuò)展也很容易。特別值得一提的是強(qiáng)大的Upstream與Filter鏈。Upstream為諸如reverse proxy,與其他服務(wù)器通信模塊的編寫奠定了很好的基礎(chǔ)。而Filter鏈最酷的部分就是各個filter不必等待前一個filter執(zhí)行完畢。它可以把前一個filter的輸出做為當(dāng)前filter的輸入,這有點像Unix的管線。這意味著,一個模塊可以開始壓縮從后端服務(wù)器發(fā)送過來的請求,且可以在模塊接收完后端服務(wù)器的整個請求之前把壓縮流轉(zhuǎn)向客戶端。

Nginx采用了一些os提供的最新特性如對sendfile (Linux2.2+),accept-filter (FreeBSD4.1+),TCP_DEFER_ACCEPT (Linux 2.4+)的支持,從而大大提高了性能。

?

三:Nginx工作原理分析

Nginx啟動后以daemon的方式在后臺運行,Nginx會啟動一個master進(jìn)程和多個worker進(jìn)程。

master進(jìn)程主要用來管理worker進(jìn)程,包含:接收來自外界的信號,向各worker進(jìn)程發(fā)送信號,監(jiān)控worker進(jìn)程的運行狀態(tài),當(dāng)worker進(jìn)程退出后(異常情況下),會自動重新啟動新的worker進(jìn)程

那worker是如何工作的呢?

當(dāng)master發(fā)出通知有新的任務(wù)了,空閑的worker通過爭搶的方式去獲取任務(wù)!

nginx設(shè)計一個 master 和多個 woker 有好處

  • 對于每個worker進(jìn)程來說,都是一個獨立的進(jìn)程,不需要加鎖,省掉了鎖帶來的開銷。
  • 可以使用 nginx –s reload 熱部署,利用 nginx 進(jìn)行熱部署操作
  • 每個woker是獨立的進(jìn)程,如果有其中的一個 woker 出現(xiàn)問題,其他woker獨立的,繼續(xù)進(jìn)行爭搶,實現(xiàn)請求過程,不會造成服務(wù)中斷,masster 進(jìn)程則很快啟動新的worker進(jìn)程
  • 總結(jié)

    以上是生活随笔為你收集整理的Nginx系列一:Nginx介绍与Nginx工作原理分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。