前言linux
Nginx是由俄羅斯軟件工程師Igor Sysoev開發的一個高性能的HTTP和反向代理服務器,具有IMAP/POP3和SMTP服務器功能。Nginx最大的特色是對高併發的支持和高效的負載均衡,在高併發的需求場景下,是Apache服務器不錯的替代品。目前,包括新浪、騰訊等知名網站都已使用Nginx做爲Web應用服務器。本文帶來的是Nginx配置與應用詳解。nginx
基礎特性web
基本功能算法
靜態資源的web服務器,能緩存打開的文件描述符緩存
反向代理服務器,緩存、負載均衡服務器
支持FastCGI微信
模塊化,非DSO機制,過濾器gzip,SSI和圖像大小調整等架構
支持SSL併發
擴展功能負載均衡
基於名稱和IP作虛擬主機
支持keepalive
支持平滑配置更新或程序版本升級
定製訪問日誌,支持使用日誌緩存以提升性能
支持url rewrite
支持路徑別名
支持基於IP及用戶的認證
支持速率限制,併發限制等
基本架構
一個master, 生成一個或多個worker
事件驅動:kqueue, epoll, /dev/poll
消息通知:select, poll, rt signals
支持sendfile, sendfile64
文件AIO
支持mmap
模塊類別
核心模塊
標準http模塊
可選的http模塊
郵件模塊
第三方擴展模塊
基本配置
虛擬主機
虛擬主機基本配置完成,固然虛擬主機裏也能夠有不少參數的,下文會說起到
訪問控制
基於用戶
認證文件由htpasswd命令建立
訪問測試
基於IP
重啓服務後訪問測試
壓縮功能
nginx將響應報文發送至客戶端以前能夠啓用壓縮功能,這可以有效地節約帶寬,並提升響應至客戶
端的速度。一般編譯nginx默認會附帶gzip壓縮的功能,所以,能夠直接啓用之。
未壓縮訪問測試
重啓服務,壓縮後測試
壓縮成功
防盜鏈
(1) 定義合規的引用
(2) 拒毫不合規的引用
訪問測試
反向代理
Nginx經過proxy模塊實現反向代理功能。在做爲web反向代理服務器時,nginx負責接收客戶請求,並可以根據URI、客戶端參數或其它的處理邏輯將用戶請求調度至上游服務器上(upstream server)。
nginx在實現反向代理功能時的最重要指令爲proxy_pass,它可以將location定義的某URI代理至指定的上游服務器(組)上。以下面的示例中,location的/uri將被替換爲上游服務器上的/newuri。
緩存
nginx作爲反向代理時,可以未來自上游服務器的響應緩存至本地,並在後續的客戶端請求一樣內容時
直接從本地構造響應報文。
緩存前請求時間
緩存後請求時間
此時緩存目錄應該有緩存文件生成
負載均衡
nginx可利用自身的upstream模塊實現,upstream模塊的負載均衡算法主要有三種,輪調(round-robin)、ip哈希(ip_hash)和最少鏈接(least_conn)三種。
如此即可實現簡單的負載均衡功能
The end
好了,有關nginx的基礎配置及應用就先說到這裏了,第一次接觸nginx,寫的比較亂,敬請諒解。
來源:馬哥教育
官方微信:magedu-linux