Nginx配置與應用詳解

前言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模塊

郵件模塊

第三方擴展模塊

基本配置

虛擬主機

12df0001a964bffed3aa

請點擊此處輸入圖片描述

虛擬主機基本配置完成,固然虛擬主機裏也能夠有不少參數的,下文會說起到

訪問控制

基於用戶

認證文件由htpasswd命令建立

128200046e8650d84e32

請點擊此處輸入圖片描述

訪問測試

12df0001a96367cf155b

請點擊此處輸入圖片描述

基於IP

12db00005e5dcfba6477

請點擊此處輸入圖片描述

重啓服務後訪問測試

12da000035bcf48345a5

請點擊此處輸入圖片描述

壓縮功能

nginx將響應報文發送至客戶端以前能夠啓用壓縮功能,這可以有效地節約帶寬,並提升響應至客戶

端的速度。一般編譯nginx默認會附帶gzip壓縮的功能,所以,能夠直接啓用之。

12da000035bea646c554

請點擊此處輸入圖片描述

未壓縮訪問測試

12da000035bf6603a520

請點擊此處輸入圖片描述

12db00005e5e9be9d010

請點擊此處輸入圖片描述

重啓服務,壓縮後測試

12df0001a966683aeb46

請點擊此處輸入圖片描述

壓縮成功

防盜鏈

(1) 定義合規的引用

128200046e875efca740

請點擊此處輸入圖片描述

(2) 拒毫不合規的引用

12df0001a96515daade9

請點擊此處輸入圖片描述

12df0001a96845f9ad89

請點擊此處輸入圖片描述

12df0001a967f02ed199

請點擊此處輸入圖片描述

訪問測試

128200046e88c72c6ce4

請點擊此處輸入圖片描述

12df0001a9690b1f986c

請點擊此處輸入圖片描述

反向代理

Nginx經過proxy模塊實現反向代理功能。在做爲web反向代理服務器時,nginx負責接收客戶請求,並可以根據URI、客戶端參數或其它的處理邏輯將用戶請求調度至上游服務器上(upstream server)。

nginx在實現反向代理功能時的最重要指令爲proxy_pass,它可以將location定義的某URI代理至指定的上游服務器(組)上。以下面的示例中,location的/uri將被替換爲上游服務器上的/newuri。

12da000035c29de11ad8

請點擊此處輸入圖片描述

128200046e899be69e8b

請點擊此處輸入圖片描述

緩存

nginx作爲反向代理時,可以未來自上游服務器的響應緩存至本地,並在後續的客戶端請求一樣內容時

直接從本地構造響應報文。

12df0001a96ad2fa246e

請點擊此處輸入圖片描述

12df0001a96be3bb9d6a

請點擊此處輸入圖片描述

緩存前請求時間

12de00006686890223ad

請點擊此處輸入圖片描述

緩存後請求時間

12da000035c454bba663

請點擊此處輸入圖片描述

此時緩存目錄應該有緩存文件生成

128200046e8ae78ae5bd

請點擊此處輸入圖片描述

負載均衡

nginx可利用自身的upstream模塊實現,upstream模塊的負載均衡算法主要有三種,輪調(round-robin)、ip哈希(ip_hash)和最少鏈接(least_conn)三種。

12db00005e5f14ceba92

請點擊此處輸入圖片描述

12de0000668855124a3c

請點擊此處輸入圖片描述

12da000035c325e114e8

請點擊此處輸入圖片描述

如此即可實現簡單的負載均衡功能

The end

好了,有關nginx的基礎配置及應用就先說到這裏了,第一次接觸nginx,寫的比較亂,敬請諒解。


來源:馬哥教育

官方微信:magedu-linux

相關文章
相關標籤/搜索