Nginx的預設配置語法

2021-09-12 14:19:50 字數 4163 閱讀 8698

我們首先看看有哪些預設配置檔案,開啟nginx.conf檔案,檢視尾行部分

[root@hongshaorou nginx]

# tail -n 2 nginx.conf

include /etc/nginx/conf.d/*.conf;

}

我們看到將/etc/nginx/conf.d/檔案下其他以.conf結尾的配置檔案都匯入到該檔案中。

我們看看/etc/nginx/conf.d/檔案下預設有哪些檔案

[root@hongshaorou conf.d]

# ls

default.conf

也就是說預設情況下有兩個配置檔案nginx.conf default.conf今天我們主要學習nginx.conf配置檔案,該配置檔案主要分為三大塊

第一塊:

user        設定nginx服務的系統使用使用者

worker_processes 工作程序數

error_log nginx的錯誤日誌

pid nginx服務啟動時候pid

第二塊:(時間)

events     worker_connections   每個程序允許最大連線數

use 工作程序數 (設定是epoll 還是select)

第三塊:

我們檢視檔案詳解

######nginx配置檔案nginx.conf中文詳解#####

#定義nginx執行的使用者和使用者組

user www www;

#nginx程序數,建議設定為等於cpu總核心數。

worker_processes 8;

#全域性錯誤日誌定義型別,[ debug | info | notice | warn | error | crit ]

error_log /usr/local/nginx/logs/error.log info;

#程序pid檔案

pid /usr/local/nginx/logs/nginx.pid;

#指定程序可以開啟的最大描述符:數目

#工作模式與連線數上限

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

#現在在linux 2.6核心下開啟檔案開啟數為65535,worker_rlimit_nofile就相應應該填寫65535。

#這是因為nginx排程時分配請求到程序並不是那麼的均衡,所以假如填寫10240,總併發量達到3

-4萬時就有程序可能超過10240了,這時會返回502錯誤。

worker_rlimit_nofile 65535

;events

#設定http伺服器,利用它的反向**功能提供負載均衡支援

#每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決session的問題。

#例如:

#upstream bakend

#3、fair(第三方)

#按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

#upstream backend

#4、url_hash(第三方)

#按訪問url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,後端伺服器為快取時比較有效。

#例:在upstream中加入hash語句,server語句中不能寫入weight等其他的引數,hash_method是使用的hash演算法

#upstream backend

#tips:

#upstream bakend

#在需要使用負載均衡的server中增加 proxy_pass http:

//bakend/

; #每個裝置的狀態設定為:

#1.down表示單前的server暫時不參與負載

#2.weight為weight越大,負載的權重就越大。

#3.max_fails:允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream模組定義的錯誤

#4.fail_timeout:max_fails次失敗後,暫停的時間。

#5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。

#nginx支援同時設定多組的負載均衡,用來給不用的server來使用。

#client_body_in_file_only設定為on 可以講client post過來的資料記錄到檔案中用來做debug

#client_body_temp_path設定記錄檔案的目錄 可以設定最多3層目錄

#location對url進行匹配.可以進行重定向或者進行新的** 負載均衡

}

虛擬主機的配置/etc/nginx/conf.d/default.conf

server

#快取時間設定

#js和css快取時間設定

location ~.*

.(js|css)

?$

#日誌格式設定

#$remote_addr與$http_x_forwarded_for用以記錄客戶端的ip位址;

#$remote_user:用來記錄客戶端使用者名稱;

#$time_local: 用來記錄訪問時間與時區;

#$request: 用來記錄請求的url與http協議;

#$status: 用來記錄請求狀態;成功是200,

#$body_bytes_sent :記錄傳送給客戶端檔案主體內容大小;

#通常web伺服器放在反向**的後面,這樣就不能獲取到客戶的ip位址了,通過$remote_add拿到的ip位址是反向**伺服器的ip位址。反向**伺服器在**請求的http頭資訊中,可以增加x_forwarded_for資訊,用以記錄原有客戶端的ip位址和原來客戶端的請求的伺服器位址。

#定義本虛擬主機的訪問日誌

access_log /usr/local/nginx/logs/host.access.log main;

access_log /usr/local/nginx/logs/host.access.

404.log log404;

#對 "/" 啟用反向**

location /

#設定檢視nginx狀態的位址

location /nginxstatus

#本地動靜分離反向**配置

#所有jsp的頁面均交由tomcat或resin處理

location ~

.(jsp|jspx|do)

?$

#所有靜態檔案由nginx直接讀取不經過tomcat或resin

######nginx配置檔案nginx.conf中文詳解#####

nginx系列4 預設配置語法

這裡要關注最後一句 include etc nginx conf.d conf nginx啟動時首先載入主配置檔案,也就是nginx.conf,然後走到配置檔案的最後一句,然後載入這句所指定目錄的配置檔案。root localhost nginx cd conf.d root localhost c...

(004)Nginx預設配置語法解析及演示

1 基礎配置 nginx的主配置檔案 etc nginx nginx.conf,當讀到下面include一行會載入 etc nginx conf.d下,以 conf結尾的檔案。user 設定nginx服務的系統使用使用者 worker processes 工作程序數,最好設定為與cpu個數一致 er...

docker 安裝的nginx 的預設配置

則引入的 預設的index.html 在 var www html 下 這樣啟動 一直 在主機無法訪問 經過測試 發現在 nginx.conf 裡如果 直接把server 寫在 http內部 而不是通過include引入 則沒問題,改成include引入方式則無法正常顯示,原因暫時未知 下面無法訪問...