鍍金池/ 教程/ Linux/ Nginx教程
Nginx安裝
Nginx內(nèi)容緩存
Nginx架構(gòu)
Nginx進(jìn)程和運(yùn)行時(shí)控制
Nginx配置虛擬機(jī)
Nginx從源碼構(gòu)建安裝配置
為什么需要Nginx?
Nginx配置文件
Nginx壓縮和解壓
Nginx+PHP7+MySQL5.7(LNMP)環(huán)境配置
Nginx反向代理
Nginx+PHP7源碼安裝配置
Nginx快速入門
Nginx的優(yōu)勢(shì)(優(yōu)點(diǎn))
Nginx教程
Nginx特性
Nginx配置Web服務(wù)器
Nginx配置日志
Nginx配置靜態(tài)內(nèi)容服務(wù)器
Nginx主要應(yīng)用場(chǎng)景(必讀)
Nginx安裝(從Linx包安裝)

Nginx教程

Nginx[讀音:engine x]是HTTP和反向代理服務(wù)器,郵件代理服務(wù)器,以及Igor Sysoev最初編寫的通用TCP/UDP代理服務(wù)器。在很長(zhǎng)一段時(shí)間以來(lái),它一直在許多負(fù)載重的俄羅斯網(wǎng)站上運(yùn)行,包括:Yandex,Mail.Ru,VK和Rambler。 根據(jù)Netcraft的說(shuō)法,Nginx在2017年3月份服務(wù)或代理了28.50%的最繁忙的網(wǎng)站。這里有一些成功案例:Netflix,Wordpress.com,F(xiàn)astMail.FM。

源代碼和文檔按照兩條BSD類許可證分發(fā)。
商業(yè)支持可從Nginx,Inc.獲得。

基本的HTTP服務(wù)器功能

  • 提供靜態(tài)和索引文件,自動(dòng)索引; 打開文件描述符緩存;
  • 加速反向代理與緩存; 負(fù)載均衡和容錯(cuò);
  • 通過(guò)緩存FastCGI,uwsgi,SCGI和memcached服務(wù)器來(lái)加速支持; 負(fù)載均衡和容錯(cuò);
  • 模塊化架構(gòu)。 過(guò)濾器包括gzip,字節(jié)范圍,分塊響應(yīng),XSLT,SSI和圖像變換過(guò)濾器。 如果由代理或FastCGI/uwsgi/SCGI服務(wù)器處理,則單頁(yè)內(nèi)的多個(gè)SSI包含可以并行處理;
  • SSL和TLS SNI支持;
  • 支持具有加權(quán)和依賴關(guān)系優(yōu)先級(jí)的HTTP/2。

其他HTTP服務(wù)器功能

  • 基于名稱和基于IP的虛擬服務(wù)器;
  • 保持活動(dòng)和管道連接的支持;
  • 訪問(wèn)日志格式,緩沖日志寫入,快速日志輪換和syslog日志記錄;
  • 3xx-5xx錯(cuò)誤代碼重定向;
  • 重寫模塊:使用正則表達(dá)式更改URI;
  • 根據(jù)客戶端地址執(zhí)行不同的功能;
  • 根據(jù)客戶端IP地址,密碼(HTTP Basic認(rèn)證)和子請(qǐng)求結(jié)果進(jìn)行訪問(wèn)控制;
  • HTTP引用的驗(yàn)證
  • PUT,DELETE,MKCOL,COPY和MOVE方法;
  • FLV和MP4流媒體;
  • 響應(yīng)速度限制;
  • 限制來(lái)自一個(gè)地址的同時(shí)連接或請(qǐng)求的數(shù)量;
  • 基于IP的地理定位;
  • A/B測(cè)試;
  • 嵌入式Perl
  • nginScript。

郵件代理服務(wù)器功能

  • 使用外部HTTP認(rèn)證服務(wù)器將用戶重定向到IMAP或POP3服務(wù)器;
  • 使用外部HTTP認(rèn)證服務(wù)器進(jìn)行用戶認(rèn)證,并將連接重定向到內(nèi)部SMTP服務(wù)器;
  • 認(rèn)證方式:
    • POP3:USER / PASS,APOP,AUTH LOGIN / PLAIN / CRAM-MD5;
    • IMAP:LOGIN,AUTH LOGIN / PLAIN / CRAM-MD5;
    • SMTP:AUTH LOGIN / PLAIN / CRAM-MD5;
  • SSL支持;
  • STARTTLS和STLS支持。

TCP/UDP代理服務(wù)器功能

  • TCP和UDP的通用代理;
  • SSL和TLS SNI支持TCP;
  • 負(fù)載均衡和容錯(cuò);
  • 基于客戶地址的訪問(wèn)控制;
  • 根據(jù)客戶端地址執(zhí)行不同的功能;
  • 限制來(lái)自一個(gè)地址的同時(shí)連接數(shù);
  • 訪問(wèn)日志格式,緩沖日志寫入,快速日志輪換和syslog日志記錄;
  • 基于IP的地理定位;
  • A/B測(cè)試;
  • nginScript。

架構(gòu)和可擴(kuò)展性

  • 一個(gè)主和幾個(gè)工作進(jìn)程; 工作進(jìn)程在非特權(quán)用戶下運(yùn)行;
  • 靈活配置;
  • 重新配置和升級(jí)可執(zhí)行文件,而不會(huì)中斷客戶端服務(wù);
  • 支持kqueue(FreeBSD 4.1+),epoll(Linux 2.6+),/ dev / poll(Solaris 7 11/99 +),事件端口(Solaris 10),select和poll;
  • 支持各種kqueue功能,包括EV_CLEAR,EV_DISABLE(臨時(shí)禁用事件),NOTE_LOWAT,EV_EOF,可用數(shù)據(jù)數(shù),錯(cuò)誤代碼;
  • 支持各種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);
  • 接受過(guò)濾器(FreeBSD 4.1+,NetBSD 5.0+)和TCP_DEFER_ACCEPT(Linux 2.4+)支持;
  • 10,000個(gè)不活動(dòng)的HTTP保持連接大約需要2.5M內(nèi)存;
  • 數(shù)據(jù)復(fù)制操作保持最小。

經(jīng)測(cè)試的操作系統(tǒng)和平臺(tái)

  • FreeBSD 3 — 11 / i386; FreeBSD 5 — 11 / amd64;
  • Linux 2.2 — 4 / i386; Linux 2.6 — 4 / amd64; Linux 3 — 4 / armv6l, armv7l, aarch64, ppc64le;
  • Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v;
  • AIX 7.1 / powerpc;
  • HP-UX 11.31 / ia64;
  • macOS / ppc, i386;
  • Windows XP, Windows Server 2003.

Nginx 是一個(gè)高性能的 Web 和反向代理服務(wù)器, 它具有有很多非常優(yōu)越的特性:

作為 Web 服務(wù)器:相比 Apache,Nginx 使用更少的資源,支持更多的并發(fā)連接,體現(xiàn)更高的效率,這點(diǎn)使 Nginx 尤其受到虛擬主機(jī)提供商的歡迎。能夠支持高達(dá) 50,000 個(gè)并發(fā)連接數(shù)的響應(yīng),感謝 Nginx 為我們選擇了 epoll and kqueue 作為開發(fā)模型.

作為負(fù)載均衡服務(wù)器:Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP,也可以支持作為 HTTP代理服務(wù)器 對(duì)外進(jìn)行服務(wù)。Nginx 用 C 編寫, 不論是系統(tǒng)資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。

作為郵件代理服務(wù)器: Nginx 同時(shí)也是一個(gè)非常優(yōu)秀的郵件代理服務(wù)器(最早開發(fā)這個(gè)產(chǎn)品的目的之一也是作為郵件代理服務(wù)器),Last.fm 描述了成功并且美妙的使用經(jīng)驗(yàn)。

Nginx 安裝非常的簡(jiǎn)單,配置文件 非常簡(jiǎn)潔(還能夠支持perl語(yǔ)法),Bugs非常少的服務(wù)器: Nginx 啟動(dòng)特別容易,并且?guī)缀蹩梢宰龅?*24不間斷運(yùn)行,即使運(yùn)行數(shù)個(gè)月也不需要重新啟動(dòng)。你還能夠在 不間斷服務(wù)的情況下進(jìn)行軟件版本的升級(jí)。