簡介
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務和通用TCP / UDP代理服務器;
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器和通用TCP / UDP代理服務器;web
功能
基本的HTTP服務器功能
- 提供靜態和索引文件,自動索引 ;
- 帶有緩存的加速反向代理; 負載平衡和容錯 ;
- 對FastCGI, uwsgi, SCGI和 memcached 服務器進行緩存的加速支持 ; 負載平衡和容錯 ;
- 模塊化架構。過濾器包括 gzipping,字節範圍,分塊響應, XSLT, SSI和圖像轉換過濾器。若是由代理服務器或FastCGI / uwsgi / SCGI服務器處理單個頁面中的多個SSI包含,則能夠並行處理;
- SSL和TLS SNI支持;
- 經過加權和基於依賴項的優先級 支持HTTP 2.0。
其餘HTTP服務器功能
- 基於名稱和基於IP的虛擬服務器;
- 管道鏈接支持;
- 訪問日誌格式, 緩衝日誌寫入, 快速日誌循環和 syslog日誌 ;
- 3xx-5xx錯誤代碼重定向;
- 重寫模塊:使用正則表達式更改URI;
- 根據客戶地址執行不一樣的功能 ;
- 基於客戶端IP地址,密碼(HTTP基自己份驗證)和子請求結果的訪問控制 ;
- FLV 和 MP4 流媒體;
- 響應率限制 ;
- 限制來自一個地址的同時鏈接或請求的數量 ;
- 基於IP的地理位置;
- 拆分測試 ;
- 請求鏡像 ;
- 嵌入式Perl ;
- njs腳本語言。
郵件代理服務器功能
- 使用外部HTTP 身份驗證 服務器 將用戶重定向到 IMAP 或 POP3服務器
- 使用外部HTTP 身份驗證 服務器的用戶身份 驗證以及到內部SMTP服務器的鏈接重定向 ;
- 認證方式:
- POP3:USER / PASS,APOP,AUTH LOGIN / PLAIN / CRAM-MD5;
- IMAP:登陸,受權登陸/普通/ CRAM-MD5;
- SMTP:AUTH LOGIN / PLAIN / CRAM-MD5;
- SSL支持;
- STARTTLS和STLS支持。
TCP / UDP代理服務器功能
- TCP和UDP的通用代理;
- SSL和TLS SNI對TCP的支持;
- 負載平衡和容錯 ;
- 基於客戶地址的訪問控制 ;
- 根據客戶地址執行不一樣的功能 ;
- 限制 來自一個地址的同時鏈接數 ;
- 訪問日誌格式, 緩衝日誌寫入, 快速日誌循環和 syslog日誌 ;
- 基於IP的地理位置;
- 拆分測試 ;
- njs腳本語言。
架構和可擴展性
- 一個主進程和多個子進程;工做進程能夠再任何用戶下運行;
- 靈活的配置 ;
- 從新配置 和升級可執行文件,而不會中斷客戶端服務;
- 支持 kqueue(FreeBSD 4.1 +),epoll(Linux 2.6 +),/ dev / poll(Solaris 7 11/99 +),事件端口(Solaris 10),選擇和輪詢;
- 支持各類隊列功能,包括EV_CLEAR,EV_DISABLE(用於臨時禁用事件),NOTE_LOWAT,EV_EOF,可用數據數,錯誤代碼;
- 支持各類epoll功能,包括EPOLLRDHUP(Linux 2.6.17 +,glibc 2.8+)和EPOLLEXCLUSIVE(Linux 4.5 +,glibc 2.24+);
- sendfile(FreeBSD 3.1 +,Linux 2.2 +,macOS 10.5 +),sendfile64(Linux 2.4.21+)和sendfilev(Solaris 8 7/01 +)支持;
- 文件AIO (FreeBSD 4.3+,Linux 2.6.22+);
- DIRECTIO (FreeBSD 4.4 +,Linux 2.4 +,Solaris 2.6 +,macOS);
- 接受過濾器(FreeBSD 4.1+,NetBSD 5.0+)和TCP_DEFER_ACCEPT(Linux 2.4+) 支持 ;
- 10,000個不活動的HTTP保持活動鏈接大約須要2.5M內存;
- 數據複製操做保持最少。
適用平臺
- FreeBSD 3 — 12 / i386; FreeBSD 5 — 12 / amd64; FreeBSD 11 / ppc;
- FreeBSD 12 / ppc64;
- Linux 2.2-4 / i386;Linux 2.6-5 / amd64; Linux 3-4 / armv6l,armv7l,aarch64,ppc64le;
- Solaris 9 / i386,sun4u; Solaris 10 / i386,amd64,sun4v; Solaris 11 / x86;
- AIX 7.1 / PowerPC;
- HP-UX 11.31 / ia64;
- macOS / ppc,i386,x86_64;
- Windows XP,Windows Server 2003,Windows 7,Windows 10。