nginx服務部署 說明

来源:http://www.cnblogs.com/znix/archive/2017/10/29/7750615.html
-Advertisement-
Play Games

第1章 常用的軟體 <!--[if !supportLists]-->1.1 <!--[endif]-->常用來提供靜態服務的軟體 <!--[if !supportLists]-->1.2 <!--[endif]-->常用來提供動態服務的軟體 <!--[if !supportLists]-->第2章 ...


第1章 常用的軟體

1.1 常用來提供靜態服務的軟體

*  Apache :這是中小型Web服務的主流,Web伺服器中的老大哥,

*  Nginx :大型網站Web服務的主流,曾經Web伺服器中的初生牛犢,現已長大。

*  Nginx 的分支 Tengine ( http://tengine.taobao.org/)目前也在飛速發展•

*  Lighttpd :這是一個不溫不火的優秀 Web軟體,社區不活躍,靜態解析效率很高. Nginx 流行前,它是大併發靜態業務的首選,國內百度貼吧、豆瓣等眾多網站都有Lighttpd奮鬥的身彩"  

1.2 常用來提供動態服務的軟體

*  PHP ( FastCGI ):大中小型網站都會使用,動態網頁語言PHP程式的解析容器。它可配合Apache解析動態程式,不過,這裡的PHP不是FastCGI守護進程橫式,而是mod_php5.so ( module)也可配合Nginx解析動態程式,此時的PHP常用FastCGI守護進程模式提供服務。

*  Tomcat :中小企業動態Web服務主流,互聯網Java容器主流(如jspdo

*  Resin :大型動態Web服務主流,互聯網Java容器主流(如jspdo

*  IIS ( Internet information services ):微軟 windows 下的 Web 服務軟體(如 aspaspx

第2章 nginx 軟體

2.1 軟體介紹

如果你聽說或使用過 Apache軟體,那麼很快就會熟悉 Nginx軟體,與 Apache軟體類似, Nginx ( engme x")是一個開源的,支持高性能、高併發的 WWW伺服器和代理服務軟體。它是由俄羅斯人 Igor Sysoev開發的,最初被應用在勘羅斯的大型網站 www.rambler.ru ,後來作者將源代碼以類BSD許可證的形式開源出來供全球使用。

Nginx因具有高併發(特別是靜態資源)占用系統資源少等特性,且功能豐富而逐漸流行起來。

在功能應用發麵,Nginx不但是一個優秀的Web服務軟體,還具有反向代理負載均衡功能和緩存服務功能。在反向代理負載均衡功能方面,它類似於大名鼎鼎的LVS負載均衡及Haproxy等專業代理軟體,但是Nginx部署起來更為簡單、方便;在緩存服務功能方面,它又類似於Squid等專業的緩存服務軟體。

Nginx 可以運行在 UNIXLinuxBSDMac 0S XSolaris,以及 Microsoft Windows 等操作系統中。隨著Nginx在國內很多大型網站中的穩定高效運行,近兩年它也逐漸被越來越多的中小型網站所使用。當前流行的Nginx Web組合被稱為LNMPLEMP(Linux Nginx MySQL PHP),其中 LNMP 里的 N 取自Nginx ( "engine x" )

Nginx 的官方介紹見 http://nginx.org/en

 

2.2 NGINX 軟體特性

2.2.1 HTTP伺服器的特色及優點

u  支持高併發:能支持幾萬併發連接(特別是靜態小文件業務環境)

u  資源消耗少:在3萬併發連接下,開啟10Nginx線程消耗的記憶體不到200MB

u  可以做HTTP反向代理及加速緩存、即負載均衡功能,內置對RS節點伺服器健康檢查功能,這相當於專業的Haproxy軟體或LVS的功能。

u  具備Squid等專業緩存軟體等的緩存功能。

u  支持非同步網路I/O事件橫型epoll(Linux2.6+)

2.2.2 nginx功能特性

Ø  web網站服務

Ø  反向代理負載均衡(nginx /lvs /haproxy)

Ø  nginx緩存服務(memcache /redis /mongodb

2.3 nginx軟體的企業功能應用

業務類型

應用方案

靜態業務

若是高併發場景,儘量採用NginxLighttpd,二者首選Nginx

動態業務

理論上採用NginxApache均可,建議選擇Nginx,為了避免相同業務的服務軟體多樣化,增加額外維護成本。動態業務可以由Nginx兼做前端代理,再根據頁面元素的類型或目錄,轉發到後端相應的伺服器處理進程。

---首選tomcat

既有靜態業務又有動態業務

採用Nginx

利用nginx軟體是無法處理動態業務請求,要讓nginx結合php軟體處理動態業務請求,在加上mysql LNMP架構

2.4 nginx軟體的動態訪問瓶頸

2.4.1 與其他軟體的對比

先來看看Apache軟體的特點,如下

²  Apache2.2版本非常穩定強大,據官方說,Apache2.4版本性能更強。

²  Prefork模式取消了進程創建開銷,性能很高。

²  處理動態業務數據時,因關聯到後端的引擎和資料庫,瓶頸不在Apache上。

²  高併發時消耗系統資源相對多一些。

²  基於傳統的select模型,高併發能力有限。

²  支持擴展庫,可通過DSOapxs方法編譯安裝額外的插件功能,不需要重新編譯Apache

²  功能多,更穩定,更安全,插件也多。

²  市場份額在逐年遞減

 

再來看看Nginx軟體的特點,如下:

n  基於非同步網結I/O 型(epollk kqueue

n  具備支持高性能,高併發的特性,併發連接可達數萬。

n  對小文件(小於1 MB的靜態文件)高併發支持很好,性能很高

n  不支持類似 ApacheDSO模式、擴展庫必須編譯進主程式(缺點)

n  進程占用系統資源比較低。

n  支持Web、反向ProxyCache三大重點功能,幷且都很優秀。

n  市場份額在逐年快速增加。

 

最後是Lighttpd的特點,如下:

²  基於非同步網路 I/ O模型,性能、併發都與 Nginx相近。

²  擴展庫是 SO模式,比Nginx靈活

²  目前國內的使用率比較低,安全性沒有 ApacheNginx好。

²  通過插件(mod_secdownload)可實現文件 URL地址加密(優點)

²  社區不活躍,市場份額較低,

 

2.4.2 最主要的區別select & epoll

NGINX 使用的是epoll Kqueue 非同步網路I/O模型,而apache使用的是傳統的select模型

比喻:

第一個比喻:

假設你在大學讀書,住的宿舍樓有很多房間,你的朋友要來找你。select版宿管大媽就會帶著你的朋友到各房間挨個去找,直到找到你為止。而epoll版宿管大媽會先記下每位入住同學的房間號,你的朋友來找你時,只需告訴你的朋友你住在哪個房間即可,不用親自帶著你的朋友滿宿舍樓找人了。如果同時來了100個人,都要找自己住這棟樓的同學,select版和epoll版宿管大媽,誰的效率更高,就很明顯了。

第二個比喻:

select的調用複雜度是線性的,即O(n)。舉個例子,一個保姆照看照看一群孩子,如果把孩子是否需要尿尿比作網路I/O事件,select的作用就好比這個保姆挨個詢問每個孩子"你要尿尿嗎?”如果孩子回答是,保姆則把孩子領出來放到另外一個地方。當所有孩子詢問完之後,保姆領著這些要尿尿的孩子去上廁所(處理網路I/O事件).epoll機制下,保姆不再需要挨個詢問每個孩子是否需要尿尿。取而代之的是,如果孩子需要尿尿,他就自己主動站到事先約定好的地方,而保姆的職責就是查看事先約定好的地方是否有孩子。如果有小孩,則領著孩子去上廁所(網路事件處理)。因此,epoll的這種機制,能夠高效地處理成千上萬的併發連接,並且性能不會隨著連接數増加而下降太多。

2.4.3 apache selectnginx epoll技術對比圖

指標

select

epoll

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 實現效果: 實現效果如下圖所示 實現原理: 什麼是筋斗雲效果: 這個效果很簡單,就是滑鼠移到其他導航目錄時會有背景圖片跟著滑鼠滑動到當前的目錄。 實現思路: 滑鼠經過的時候,利用offsetLeft獲得當前盒子距離左側的距離,把這個值賦給緩動動畫的end值。 當點擊的時候記住當前的offsetLef ...
  • 一.獲取日期時間,秒數實時跳動 二.高考倒計時功能(天) 三.限時搶 ...
  • uiw 高品質的UI工具包,基於React 16+的組件庫。
  • 首先可以打開命令行 輸入:ipconfig 找到本機配置的IP地址 這裡是: 192.168.97.122 或者打開Fiddler 點擊如下圖片中的小三角符號:將滑鼠放在online的位置,也可以看到IP地址 FIddler預設監聽的8888 埠, 此埠可以自行配置(一般無需修改埠號,除非和其 ...
  • 在Android遠程桌面助手工具軟體中增加了監測系統CPU、GPU、Thermal、電池等狀態信息的功能。 ...
  • 問題原因 vmware installer 不能正確識別GCC 7 (f26使用 Red Hat GCC 7.1.1) [VMware已經發佈新版本14.0.0,支持fedora26,但記憶體管理部分有問題,好像是linux內核有了變動,造成開啟虛擬機提示記憶體錯誤或虛擬機關閉後不會釋放記憶體空間] 解決 ...
  • 在Linux中所有的東西都對應著一個文件。 root:/sbin/usr/sbin all users:/bin/usr/bin bin: binary usr: user sbin: super binary -a : all -l: long: drwxr-xr-x 文件類型: d 目錄dire ...
  • 我下載了網路安裝版的centos,文件名是:Centos-7-x86_64-NetInstall.iso。總是安裝不正確。卡就卡在安裝源這裡。 反覆搜索沒有結果,試了163的源也不行,鏡像列表哪裡打鉤不打鉤完全沒用。 最後使用阿裡雲終於解決問題。 前面選擇https,後面是:mirrors.aliy ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...