Nginx使用解析說明

2021-10-08 22:03:41 字數 4124 閱讀 4199

其整體結構如下:

從圖中我們可以看出主要包含以下幾大部分內容:

main(全域性設定):設定的指令將影響其他所有設定;

server(主機設定):指令主要用於指定主機和埠、

upstream(負載均衡伺服器設定):指令主要用於負載均衡,設定一系列的後端伺服器

location(url匹配特定位置的設定):用於匹配網頁位置。

這四者之間的關係式:server繼承main,location繼承server,upstream既不會繼承其他設定也不會被繼承。在這四個部分當中,每個部分都包含若干指令,這些指令主要包含nginx的主模組指令、事件模組指令、http核心模組指令,同時每個部分還可以使用其他http模組指令,例如http ssl模組、httpgzip static模組和http addition模組等。

該部分配置主要影響nginx全域性,通常包括下面幾個部分:

a、配置執行nginx伺服器使用者(組)

如:user nobody nobody;user是個主模組指令,指定nginx worker程序執行以及使用者組。

指令格式:user user [group];  

user

:指定可以執行nginx伺服器的使用者;group:可選項,可以執行nginx伺服器的使用者組。

如果user指令不配置或者配置為user nobody nobody,預設由nobody賬戶執行。

b、worker process數    

如:worker_processes 2;woker_processes是個主模組指令,制定了nginx要開啟的程序數。每個nginx程序平均耗費10m~12m記憶體。建議指定和cpu的數量一致即可。

nginx伺服器實現併發處理服務的關鍵。

指令格式:worker_processes number | auto;

number : nginx 

程序最多可以產生的worker process 數。

auto

: nginx 程序將自動檢測

在按照上面的配置格式配置了之後,假如上面的數目是2,那麼啟動nginx伺服器後,在後台主機上檢視nginx的程序情況,可以看到應該是有2個nginx程序。

c、錯誤日誌的存放路徑

如:error_log logs/error.log  notice;error_log 是個主模組指令,用來定義全域性錯誤日誌檔案。日誌輸出級別有debug,info,notice,warn,error,erit可供選擇,其中,debug輸出日誌最為詳細,而crit輸出日誌最少。

指定格式:error_log file  | stderr;

file : 

日誌輸出到某個檔案file

stderr : 

日誌輸出到標準錯誤輸出 (日誌輸出級別)。 

d、nginx程序pid存放路徑

如:pid logs/nginx.pid;pid是個主模組指令,用來指定程序pid的儲存檔案位置。

nginx程序是作為系統守護程序在進行,需要在某個檔案中儲存當前執行程式的主程序號,nginx支援該儲存檔案路徑的定義。

指令格式:pid file;

file

:指定存放路徑和檔名稱。

如果不指定,則預設置於路徑 logs/nginx.pid

e、worker_rlimit_nofile 

如:worker_rlimit_nofile 65535;用來繫結worker程序和cpu,linux核心2.4 以上可用

指定程序可以開啟的最多檔案描述數目,理論值應該是最多開啟檔案數(ulimit -n )與nginx程序數相除,但是nginx分配請求並不是那麼均勻,所以最好與ulimit -n 的值保持一致。

現在在linux2.6 核心下開啟檔案開啟數為65535,worker_rlimit_nofile 就相應應該填寫65535.這是因為nginx排程時請求到程序並不是那麼均衡,所以假如填寫10240,總併發量達到3-4萬時就有程序超過10240了,這就會返回502。

events 事件指令是設定nginx的工作模式及連線數上限

events事件指令是設定nginx的工作模式及連線數上限。每個配置選項的含**釋如下:

a、use

如:use epoll;

use是事件模組指令,用來指定nginx的工作模式。nginx支援的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll 。其中select 和poll 都是標準的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在linux平台上,而kqueue用在bsd系統中。對於linux系統,epoll工作模式是首選。 b

、worker_connections

如:worker_connections65536;

work_connections

也是個事件模組指令,用於定義nginx每個程序的最大連線數,預設是1024。

a、定義mimi-type

如:include  mime.types;

指令格式:include file;

default_type

屬於http核心模組指令,這裡設定預設型別為二進位製流。也就是當檔案型別未定義時使用這種方式,

b、自定義服務日誌

log_format 是nginx的httplog模組指令,用於指定nginx日誌的輸出日誌。當然其中還有更為詳細的配置,但是這裡只做大略的研究學習,不過分深入細節。

c、允許sendfile方式傳輸檔案

指令格式:sendfile  on;

這個指令中的引數on是表示開啟高效檔案傳輸模式,預設是關閉狀態(off),將tcp_nopush和tcp_nodelay兩個指令設定為on用於防止網路阻塞;

d、連線超時時間

指令格式:keepalive_timeout number;

如:keepalive_timeout 65;

keepalive_timeout

設定客戶端連線保持活動的超時時間。在超過這個時間之後,伺服器會關閉該連線;

server 塊是對虛擬主機的配置,server標誌定義虛擬主機開始,

a、listen用於指定虛擬主機的服務埠,

b、server_name 用來指定ip位址或網域名稱,多個網域名稱之間用空格分開。

c、index用於設定訪問的預設首頁位址.。

d、root指令用於指定虛擬主機的網頁根目錄,這個目錄可以是相對路徑,也可以是絕對路徑。

e、charset用於設定網頁的預設編碼格式。

f、access_log 用來指定虛擬主機的訪問日誌存放路徑,最後的main 用於指定訪問日誌的輸出格式。

url位址匹配是進行nginx配置中最靈活的部分。 location支援正規表示式匹配,也支援條件判斷匹配,使用者可以通過location指令實現nginx對動、靜態網頁進行過濾處理。使用location url匹配配置還可以實現反向**,用於實現php動態解析或者負載負載均衡。

a、location配置

b、請求根目錄配置

c、更改location的uri

d、**預設首頁配置

NGINX 使用說明

nginx在centos上操作有關命令,以前的啟動方法無法實現 services nginx start or systemctl start nginx 1.查詢安裝路徑 whereis nginx2.執行啟動命令 nginx 啟動 nginx s stop 停止 nginx s quit ngi...

Nginx 使用說明02

上文簡單介紹了一下nginx,本文說一下其實現.想要通過nginx實現反向 主要需要進行conf目錄下nginx.conf檔案的配置 nginx 需要使用http https協議的 我們主要設定的就是server,乙個server代表乙個服務,多個服務我們就要配置多個server.上述 可是實現乙個...

Nginx 架構說明 配置使用實踐

nginx 安裝 nginx 架構說明 nginx實踐 略nginx 架構圖 架構說明 1 nginx啟動時,會生 不處理網路請求,主要負責排程工作程序,也就是圖示的三項 載入配置 啟動工作程序及非停公升級。所以,nginx啟動以後,檢視作業系統的程序列表,我們就能看到至少有兩個nginx程序。2 ...