nginx是HTTP和反向代理服務器,郵件代理服務器和通用TCP / UDP代理服務器,最初由Igor Sysoev編寫。長期以來,它已經在許多負載較重的俄羅斯站點上運行,包括Yandex,Mail.Ru,VK和Rambler。有需要的小伙伴歡迎來西西下載。
軟件簡介:
Nginx(發音同 engine x)是一款輕量級的Web服務器/反向服務器及電子郵件(IMAP/POP3)服務器,并在一個BSD-like 協議下發行。由俄羅斯的程序設計師Igor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:新浪、網易、騰訊等。
軟件功能:
基本的HTTP服務器功能
提供靜態和索引文件,自動索引;打開文件描述符緩存;
帶有緩存的加速反向代理;負載平衡和容錯;
對FastCGI,uwsgi,SCGI和memcached服務器進行緩存的加速支持;負載平衡和容錯;
模塊化架構。過濾器包括gzipping,字節范圍,分塊響應,XSLT,SSI和圖像轉換過濾器。如果由代理服務器或FastCGI / uwsgi / SCGI服務器處理單個頁面中的多個SSI包含,則可以并行處理;
SSL和TLS SNI支持;
通過加權和基于依賴項的優先級支持HTTP / 2。
其他HTTP服務器功能
基于名稱和基于IP的虛擬服務器;
保持活動和管道連接支持;
訪問日志格式,緩沖日志寫入,快速日志循環和syslog日志;
3xx-5xx錯誤代碼重定向;
重寫模塊:使用正則表達式更改URI;
根據客戶地址執行不同的功能;
基于客戶端IP地址,密碼(HTTP基本身份驗證)和子請求結果的訪問控制;
HTTP參考者的驗證;
該PUT,DELETE,MKCOL,復制和移動方法;
FLV和MP4流媒體;
響應率限制;
限制來自一個地址的同時連接或請求的數量;
基于IP的地理位置;
A / B測試;
請求鏡像;
嵌入式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和TLSSNI對TCP的支持;
負載平衡和容錯;
基于客戶地址的訪問控制;
根據客戶地址執行不同的功能;
限制來自一個地址的同時連接數;
訪問日志格式,緩沖日志寫入,快速日志循環和syslog日志;
基于IP的地理位置;
A / B測試;
njs腳本語言。
使用方法
一、雙擊nginx.exe圖標,可見黑窗口一閃而過,啟動完畢。
二、命令行到nginx目錄,輸入nginx啟動。(注,此方式命令行窗口無任何提示,且被鎖定)
三、命令行到nginx目錄,輸入start nginx啟動,此方式不鎖定
啟動后,默認情況下(無修改配置),可見到有兩個nginx的進程,1個是master process,1個是worker processes。
如果你在配置中配置2個worker_processes,進程中就可以看到1個是master process,2個是worker processes。
測試
默認nginx部署了些靜態內容,我們可通過它測試nginx是否在工作。
默認的配置文件(NGINX_HOME/conf/nginx.conf)如下:
通過觀察配置文件的非注釋項,大概可知:
1、啟動了1個worker processes
2、worker_connections,最大并發數為1024
3、include mime.types,引入mime.types文件所聲明的文件擴展名與文件類型映射
4、application/octet-stream,默認使用application/octet-stream
5、sendfile,開啟高效文件傳輸模式
6、監聽本機“localhost”的80端口
7、映射目錄為“當前目錄的html目錄”
8、出現500、502、503、504錯誤,則映射到50x.html
瀏覽地址http://localhost,即可訪問其默認頁面,即映射到NGINX_HOME/html/index.html
其他靜態內容,如html、圖片,可自行添加測試。
4. 日志
日志默認位于NGINX_HOME/logs/,可見:
1、access.log,訪問日志
2、error.log,異常日志
3、nginx.pid,進程(僅在啟動nginx后才有此日志)
更新日志
2019年9月24日nginx 1.17.4的變化
*)更改:更好地檢測HTTP/2中的不正確客戶端行為。
*)變更:在處理未完全讀取客戶端請求體時
返回HTTP/2中的錯誤。
*) bug修復:“worker_shutdown_timeout”指令可能無法工作時
使用HTTP / 2。
*) bug修復:分割錯誤可能發生在工作進程中
使用HTTP/2和“proxy_request_buffering”指令。
bug修復:ECONNABORTED錯誤日志級別為“crit”而不是
使用SSL時在Windows上出現“錯誤”。
*) bug修復:nginx在使用分塊傳輸時忽略了額外的數據
編碼。
*)錯誤修正:nginx總是返回500錯誤,如果“返回”指令
在讀取客戶端請求體時發生錯誤。
修正:在內存分配錯誤處理。