1. 程式人生 > 實用技巧 >CF516D Drazil and Morning Exercise 題解

CF516D Drazil and Morning Exercise 題解

nginx介紹

官網:http://nginx.org

nginx:engine X,是由1994年畢業於俄羅斯國立莫斯科鮑曼科技大學的同學為俄羅斯rambler.ru公司開發的,開發工作最早從2002年開始,第一次公開發布時間是2004年10月4日,版本號是0.1.0

nginx 是免費,開源,高效能的HTTP和反向代理伺服器,郵件代理伺服器,通用TCP/UDP代理伺服器,解決C10K問題(10K Connections)。

特性:

  模組化設計,較好的擴充套件性   高可靠性   支援熱部署:不停機更新配置檔案,升級版本,更換日誌檔案   低記憶體消耗:10000個keep-alive連線模式下的非活動連線,僅需2.5M記憶體   event-driven,aio,mmap,sendfile

基本功能:

  靜態資源的web伺服器   http協議反向代理伺服器   pop3/imap4協議反向代理伺服器   FastCGI(LNMP),uWSGI(python)等協議   模組化(非DSO),如zip,SSL模組

nginx架構

master/worker結構   一個master程序:負載載入和分析配置檔案、管理worker程序、平滑升級   一個或多個worker程序,處理並響應使用者請求 快取相關的程序:   cache loader:載入快取物件   cache manager:管理快取物件 模組化 nginx高度模組化,但其模組早期不支援DSO機制;1.9.11版本支援動態裝載和解除安裝   模組分類:     核心模組:core module,是 Nginx 伺服器正常執行 必不可少 的模組,提供錯誤日誌記錄 、配置檔案解析 、事件驅動機制 、程序管理等核心功能   標準模組:     HTTP 模組: ngx_http_*       HTTP Core modules 預設功能,提供 HTTP 協議解析相關的功能,比如: 埠配置 、 網頁編碼設定 、 HTTP響應頭設定 等等       HTTP Optional modules 需編譯時指定。可選HTTP模組,主要用於擴充套件標準的 HTTP 功能,讓 Nginx 能處理一些特殊的服務,比如: Flash 多媒體傳輸 、解析 GeoIP 請求、 網路傳輸壓縮 、 安全協議 SSL 支援等     Mail 模組 ngx_mail_*:主要用於支援 Nginx 的 郵件服務 ,包括對 POP3 協議、IMAP 協議和 SMTP協議的支援     Stream 模組 ngx_stream_*:   第三方模組:是為了擴充套件 Nginx 伺服器應用,完成開發者自定義功能,比如:Json 支援、 Lua 支援等

web服務相關的功能:

虛擬主機(server) 支援 keep-alive 和管道連線( 共享TCP連線發起併發的HTTP請求) 訪問日誌(支援基於日誌緩衝提高其效能) url rewrite 路徑別名 基於IP及使用者的訪問控制 支援速率限制及併發數限制 重新配置和線上升級而無須中斷客戶的工作程序 Memcached 的 GET 介面

nginx的安裝

官方yum源: http://nginx.org/packages/centos/7/x86_64/ Fedora-EPEL源: https://mirrors.aliyun.com/epel/7/x86_64/ 編譯安裝: yum install gcc pcre-devel openssl-devel zlib-devel useradd -r -s /sbin/nologin nginx
./configure --prefix=/apps/nginx \
--user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-pcre \ --with-stream \ --with-stream_ssl_module \ --with-stream_realip_module make && make install