Nginx 學習筆記(一)簡介

  1. Nginx是一款免費開源的高性能http服務器及反向代理服務器產品,同時,它還可以提供IMPA/POP3代理服務等功能
  2. 官網 http://www.nginx.org
  3. 介紹 http://wiki.nginx.org/Main
  4. 源碼獲取 http://trac.nginx.org/nginx/browser
  5. 版本變更說明 http://nginx.org/en/CHANGES
  6. 7.0.69 開始支持Windows版本 性能和廣泛度沒有Linux 高
  7. 版本分爲開發版本(用於Nginx軟件項目的研發) 穩定版本 (用於Web服務器投入商業應用)過期版本
  8. 能夠快速相應靜態頁面(HTML)的請求; 支持FastCGI、SSL、Virtual Host、URL Rewrite、HTTP Basic Auth、Gzip等大量使用功能;並且支持更多的第三方功能模塊的擴展
  9. 提供的基本功能服務大體分爲基礎HTTP服務、高級HTTP服務和郵件服務三大類。Nginx提供基本HTTP服務,可以作爲HTTP代理服務器和反向代理服務器,支持通過緩存加速訪問,可以完成簡單的負載均衡和容錯,支持包過濾功能,支持SSL等。Nginx提供高級HTTP服務,可以進行自定義配置,支持虛擬主機,支持URL重定向,支持網絡監控,支持流媒體傳輸等。Nginx作爲郵件代理服務器是最早開發這個產品的目的之一,它支持IMAP/POP3代理服務功能,支持內部SMTP代理服務功能。
  10. 基本HTTP服務中 主要包含以下功能特性: 處理靜態文件(如HTML靜態網頁及請求);處理索引文件以及支持自動索引。 打開並自行管理文件描述符緩存。 提供反向代理服務,並且可以使用緩存加速反向代理,同時完成簡單負載均衡及容錯。 提供遠程FastCGI服務的緩存機制,加速訪問,同時完成簡單的負載均衡及容錯。 使用Nginx的模塊化特性過濾器功能。Nginx基本過濾器包括gzip壓縮、ranges支持、chunked響應、XSLT、SSI以及圖像縮放等。其中,針對包含多個SSI的頁面,經由FastCGI或反向代理,SSI過濾器可以並行處理。 支持HTTP下的安全套接層安全協議SSL。
  11. 高級HTTP服務 主要包含以下功能特性:支持基於名字和IP的虛擬主機設置。支持HTTP/1.0種的KEEP-ALive模式和管線(PipeLined)模型連接。支持重新加載配置以及在線升級時,無須中斷正在處理的請求。自定義訪問日誌格式、帶緩存的日誌寫操作以及快速日誌輪轉。提供3XX~5XX錯誤代碼重定向功能。支持重寫(Rewrite)模塊擴展。支持HTTP DAV模塊,從而爲Http WebDAV提供PUT、DELETE、MKCOL、COPY以及MOVE方法。支持FLV流和MP4流傳輸。支持網絡監控,包括基於客戶端IP地址和HTTP基本認證機制的訪問控制、速度限制、來自同一地址的同時連接數或請求數限制等。 支持嵌入Perl語言。
  12. 郵件代理服務 支持使用外部HTTP認證服務器重定向用戶到IMAP/POP3後端,並支持IMAP認證方式(LOGIN、AUTH LOGNIN/PLAIN/CRAM-MD5) 和POP3認證方式(USER/PASS、APOP、AUTH LOGIN/PLAIN/CRAM-MD5)。 支持使用外部HTTP認證服務器認證用戶後重定向連接到內部SMTP後端,並支持SMTP認證方式(AUTH LOGIN/PLAIN/CRAM-MD5)。支持郵件代理服務下的安全套接層安全協議SSL。支持純文本通信協議的擴展協議STARTTLS。
  13. 負載均衡兩重含義 一方面是提高網絡系統處理能力 減輕服務器負擔 另一方面 將用戶流量進行分流處理 增加處理效率 減少用戶等待時間
  14. 負載均衡策略分爲兩大類:內置策略和擴展策略。內置策略主要包括輪詢、加權輪訓、和IPhash三種;擴展策略主要通過第三方模塊來實現,種類豐富,常見有url hash 、fair等。內置會被自動編譯到nginx內核,擴展需要手動編譯。IPHash可以是用戶session 在指定的服務器中 避免在多個節點共享問題 urlhash 如果後端有緩存服務器可以提高效率但是如果後端節點出現異常 他不能自動排除該節點,後端節點出現異常會導致返回503錯誤。fair分配給請求量最少的機器通過響應時間來判斷。
  15. Squid 在web服務器領域是一款相當流行的開源代理服務器和Web緩存服務器。可以緩存前端請求,萬維網、域名系統或者其他網絡搜索等,爲一個集體提供網絡資源共享服務。
  16. Nginx 0.7.48版本開始也支持了和Squid類似的緩存功能。Nginx服務器的Web緩存緩存只要由Proxy_Cache相關指令集和FastCGI_Cache相關指令集構成。其中,Proxy_Cache主要用於在Nginx服務器提供反向代理服務時,對後端源服務器的返回內容進行URL緩存;FastCGI_Cache主要用於對FastCGI的動態程序進行緩存。另外還有一款常用的第三方模塊ngx_cache_purge也是Nginx服務器Web緩存功能中經常用到的。它主要用於清除Nginx服務器上指定的URL緩存。0.8.32 版本後可以實現Squid的全部緩存和清除指定URL緩存功能,nginx多核調度更略勝一籌 反向代理負載均衡也不遜色於squid 基本可以取代squid。

閱讀書籍:Nginx高性能Web服務器詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章