一、Nginx的功能
1、功能特性
Nginx功能豐富,既可以作為HTTP服務器,也可以作為反向代理服務器,能夠快速響應靜態頁面(HTML)的請求,使用模塊化設計風格,同時支持更多第三方模塊。
1.1、Nginx的特性如下
* 模塊化設計、較好的擴展性 ,從1.9版本以后支持(部分)模塊動態裝卸載
* 高可靠性,有一個master主控進程,主控進程(master)負責生成多個worker
* 低內存消耗,一個worker進程負責響應多個請求
* 支持熱部署、不停機而更新配置文件
* 支持平滑升級軟件版本
* 支持事件驅動機制,支持異步IO,支持NMAP內存映射
1.2、Nginx的基本功能
A:基本的HTTP服務
* 靜態資源的web服務器
* 打開并自行管理文件描述符緩存
* 提供反向代理服務(HTTP、SMTP、POP3協議)
* 支持HTTPS(安全套接層協議SSL)
* 使用Nginx的模塊化特性提供過濾器功能
* 支持緩存和負載均衡機制
* 支持FastCGI,能和php-fpm結合,組成LNMP,同時支持uWSGI(與Python結合)
* 支持SSI機制,圖像的大小調整
B:高級HTTP服務
* 支持基于名稱和IP的虛擬主機
* 支持Keepalive機制
* 支持平滑升級(無須中斷正在處理的請求)
* 支持自定義訪問日志格式,支持使用日志緩沖區提供日志存儲性能
* 支持URL 重新、支持路徑別名
* 支持基于IP和用戶的訪問控制
* 支持速率限制、并發數限制等
* 支持FLV流和MP4流
3、Nginx的基本架構
一個Master(主控)進程,生成一個或多個worker進程
事件驅動模型:Epoll(基于邊緣觸發)
復用器: select、poll,rt signal
支持Sendfile、Sendfile64、AIO、NMAP機制

Nginx的工作模式: 基于非阻塞、事件驅動機制,有一個master進程生成多個worker線程,每個worker響應n個請求
4、sendfile機制說明:
當用戶的請求過來,先由網卡設備接收到,通過注冊監聽在80端口的內核捕獲到,然后使得向用戶空間的web服務進行轉發,web服務器收到請求,接下來向內核發起(IO)請求,接下來內核負責把文件從磁盤加載到內核內存,然后從內核內存復制一份到進程內存、然后web服務器構建響應報文,把內容從進程內存拷貝到內核內存,然后通過網卡發送出去
Sendfile機制就是: 當內核獲取到資源后,直接構建響應報文,通過網卡響應給客戶端
5、Nginx的進程模型
Nginx在啟動后,會有一個master進程和多個worker進程
A : Master進程
生成和管理各worker進程,用來接收外界的信號,并向各worker進程發送信號、監控worker進程的運行狀態
master進程充當整個進程組與用戶的交互接口
Nginx的平滑升級(kill -HUP pid,則是告訴nginx,從容地重啟nginx,我們一般用這個信號來重啟nginx,或重新加載配置,因為是從容地重啟,因此服務是不中斷的。master進程在接收到HUP信號后是怎么做的呢?首先master進程在接到信號后,會先重新加載配置文件,然后再啟動新的worker進程,并向所有老的worker進程發送信號,告訴他們可以光榮退休了。新的worker在啟動后,就開始接收新的請求,而老的worker在收到來自master的信號后,就不再接收新的請求,并且在當前進程中的所有未處理完的請求處理完成后,再退出)
B: Worker進程
負責處理客戶端的web請求
worker進程的個數是可以設置的(一般為CPU核心數-1),后期的nginx版本支持設置為auto

- 第一部分:Nginx Web服務
- 第一章: Nginx的初探
- 第二章:Nginx的安裝部署
- 第一節:在centos6上通過Yum安裝Nginx
- 第二節:在Centos7上通過Yum安裝nginx
- 第三節:編譯安裝Nginx服務
- 第四節: Nginx編譯參數詳解
- 第五節: Nginx的啟動腳本
- 第六節:Nginx的shell腳本安裝
- 第七節:nginx服務的平滑升級
- 第三章:Nginx服務基礎配置
- 第一節: 配置運行nginx服務器用戶
- 第二節:配置運行生成的worker processes進程數
- 第三節:配置Nginx進程PID存放路徑
- 第四節:定義MIME類型
- 第五節:自定義nginx的訪問日志
- 第六節:主配置段(main)常用的配置
- 第七節:http段(核心)常用的配置命令
- 第八節:配置nginx中的location段
- 第九節: 基于IP的訪問控制
- 第十節:基于用戶的訪問控制
- 第十一節:Nginx定義status狀態頁
- 第十二節:Nginx服務器Rewrite重寫
- 第十三節:Nginx服務配置防盜鏈
- 第十四節:nginx軟件的優點
- 第四章:Nginx服務器的優化配置
- 第一節:nginx.conf配置文件基本參數優化
- 第二節:fastcgi調優
- 第三節:Gzip調優
- 第四節:expires緩存調優
- 第五節:內核參數優化
- 第六節: Nginx之——413 修改上傳文件大小限制
- 第五章:Nginx虛擬主機的配置
- 第一節:基于名稱的虛擬主機
- 第二節:通過shell腳本添加虛擬主機
- 第六章:Nginx常用模塊指令詳解
- 第一節:ngx_http_realip_module
- 第二節:http_image_filter_module
- 第三節:tengine中配置consistent hash module
- 第四節:ngx_http_userid_module
- 第七章:Nginx服務器配置HTTPS訪問
- 第八章: Nginx服務器日志切割
- 第二部分:Nginx負載均衡反向代理服務
- 第一章:Nginx進階參數詳解
- 第一節:proxy_module參數詳解
- 第二節:upstream_module參數詳解
- 第四章:Nginx反向代理服務
- 第一節:Nginx反向代理配置參數詳解
- 第二節:Nginx反向代理服務配置案例
- 第三節:Nginx緩存
- 第四節: Nginx中fastcgi模塊
- 第五節:nginx+fastcgi實現動靜分離架構
- 第五章:Nginx負載均衡
- 第一節:ngx_http_upstream_module常見指令
- 第二節:調度方法
- 第三節:健康狀態檢查