Nginx基本配置及應用

2021-09-27 04:22:16 字數 4301 閱讀 5649

nginx(發音同engine x)是乙個非同步框架的 web伺服器,也可以用作反向**,負載平衡器 和 http快取。

1.配置檔案結構

...              #全域性塊

events

http #http塊

location [pattern]

} server

... #http全域性塊

}

2.結構詳解

全域性塊:配置影響nginx全域性的指令。一般有執行nginx伺服器的使用者組,nginx程序pid存放路徑,日誌存放路徑,配置檔案引入,允許生成worker process數等。

events塊:配置影響nginx伺服器或與使用者的網路連線。有每個程序的最大連線數,選取哪種事件驅動模型處理連線請求,是否允許同時接受多個網路連線,開啟多個網路連線序列化等。

http塊:可以巢狀多個server,配置**,快取,日誌定義等絕大多數功能和第三方模組的配置。如檔案引入,mime-type定義,日誌自定義,是否使用sendfile傳輸檔案,連線超時時間,單連線請求數等。

server塊:配置虛擬主機的相關引數,乙個http中可以有多個server。

location塊:配置請求的路由,以及各種頁面的處理情況。

nginx主要功能:1、**服務 2、負載均衡 3、靜態資源(動靜分離) 4、快取服務

1.**服務

proxy_pass url;

url包含傳輸協議、主機名稱或者ip位址加埠號等要素。

傳輸協議通常是"http"或者"https"

注意upstream和proxy_pass搭配使用的兩種情況(1

)proxy_list中指明了傳輸協議

upstream proxy_list

server}(

2)proxy_list中沒傳輸協議

upstream proxy_list

server

}

還有需要注意url中是否包含uri,以訪問""為例

server

}

其他指令:

location /
2.負載均衡

**伺服器組的配置:

upstream proxy_list

server

負載均衡策略主要有以下四種:

upstream proxy_list
輪詢:nginx預設就是輪詢其權重都預設為1,伺服器處理請求的順序:ababababab…

upstream proxy_list
加權輪詢:跟據配置的權重的大小而分發給不同伺服器不同數量的請求。如果不設定,則預設為1。下面伺服器的請求順序為:abbabbabbabbabb…

upstream proxy_list
ip_hash:nginx會讓相同的客戶端ip請求相同的伺服器。

upstream proxy_list
關於nginx負載均衡配置的幾個狀態引數講解。

upstream mysvr
3.靜態資源(動靜分離)

為了提高**的響應速度,減輕程式伺服器(tomcat,jboss等)的負載,對於靜態資源比如,js,css等檔案,我們可以在反向**伺服器中進行快取,這樣瀏覽器在請求乙個靜態資源時,**伺服器就可以直接處理,而不用將請求**給後端伺服器。使用者請求的動態檔案比如servlet,jsp則**給tomcat,jboss伺服器處理,這就是動靜分離。這也是反向**伺服器的乙個重要的作用。

靜態檔案的請求比如:gif、jpg、js、css等靜態資源請求,由nginx進行處理,配置如下:

expires 30d; 指定這些資源檔案在客戶端瀏覽器的快取時間。30d指的是30天,1h指的是1小時。

4.快取服務

完整的配置:

#vim /usr/local/nginx/conf/nginx.conf 

upstream node

proxy_cache_path /cache levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off;

server

location /

}

引數詳解:

proxy_cache_path /soft/cache levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off;

#proxy_cache //存放快取臨時檔案

#levels //按照兩層目錄分級

#keys_zone //開闢空間名,10m:開闢空間大小,1m可存放8000key

#max_size //控制最大大小,超過後nginx會啟用淘汰規則

#inactive //60分鐘沒有被訪問快取會被清理

#use_temp_path //臨時檔案,會影響效能,建議關閉

proxy_cache cache;

#proxy_cache //開啟快取

#proxy_cache_valid //狀態碼200|304的過期為12h,其餘狀態碼10分鐘過期

#proxy_cache_key //快取key

#add_header //增加頭資訊,觀察客戶端respoce是否命中

#proxy_next_upstream //出現502-504或錯誤,會跳過此台伺服器訪問下一台伺服器

部分頁面不加快取,通過以下配置實現。

if

($request_uri ~ ^/(static|login|register|password))

清理快取:

1.rm刪除已快取的資料

rm -rf /cache/*

2.通過ngx_cache_purge擴充套件模組清理,需要編譯安裝nginx

user nobody;

#配置使用者或者組,預設為nobody nobody。

worker_processes 2;

#允許生成的程序數,預設為1

#pid /nginx/pid/nginx.pid; #指定nginx程序執行檔案存放位址

#error_log log/error.log debug; #制定日誌路徑,級別。這個設定可以放入全域性塊,http塊,server塊,級別以此為:debug|info|notice|warn|error|crit|alert|emerg

#靜態檔案交給nginx處理

#靜態檔案交給nginx處理

location ~ .*\.(js|css)?$

error_page 500 502 503 504 /50x.html;

location = /50x.html

}}

nginx安裝及基本配置

nginx安裝 示例環境 centos,軟體目錄src 1.nginx 依賴安裝 pcre 8.37.tar.gz openssl 1.0.1t.tar.gz zlib 1.2.8.tar.gz nginx 1.11.1.tar.gz wget 1 安裝pcre依賴包。安裝包放入linux 系統中 ...

nginx基本配置命令及方法

下面拿vmware workstation 虛擬機器為實驗環境給大家做一下 1 yum y install pcre devel zlib devel.x86 64 安裝支援軟體 2 useradd m s sbin nologin nginx 建立執行nginx的使用者和組 3 編譯安裝nginx...

Nginx基本配置

基本的 優化過的 配置 我們將修改的唯一檔案是nginx.conf,其中包含nginx不同模組的所有設定。你應該能夠在伺服器的 etc nginx目錄中找到nginx.conf。首先,我們將談論一些全域性設定,然後按檔案中的模組挨個來,談一下哪些設定能夠讓你在大量客戶端訪問時擁有良好的效能,為什麼它...