localtion 配置
文法結構: location [ = ~ ~* ^~ ] uri{ ... }
uri 變量是帶比對的請求字元, 可以是不含正則表達的字元串, 也可以是包含正則的字元串
其中[ ] 中的是可選項 uri 的是必選項: 用來改變請求字元串與uri的比對方式
= 用于标準uri 前面 , 要求請求字元串與uri嚴格比對,如果已經比對成功,就停止比對立即處理這個請求
~ 表示uri包含正規表達式 并且區分大小寫
~* 用于表示uri包含正規表達式 不區分大小寫
^~ 要求找到表示uri和請求字元串比對度最高的location, 然後處理這個要求
網站錯誤頁面
1xx:訓示資訊--表示請求已接收,繼續處理
2xx:成功--表示請求已被成功接收、了解、接受
3xx:重定向--要完成請求必須進行更進一步的操作
4xx:用戶端錯誤--請求有文法錯誤或請求無法實作
5xx:伺服器端錯誤--伺服器未能實作合法的請求
http消息 代碼 含義
以移動 301 請求的資料具有新的位置,而且更改是永久的
重定向 302 請求資料臨時位置更改
無法找到網頁 400 可以連接配接到伺服器,但是由于位址問題,無法找到網頁
網站拒絕顯示 404 可以連接配接到網站但是找不到網頁
無法顯示該頁面 405 可以連接配接網站,頁面内容無法下載下傳,網頁編寫方式問題
網站無法顯示該頁面 500 伺服器問題
未執行 501 沒有講正在通路的網站設定顯示為浏覽器所請求的網站
不支援版本 505 請求的協定版本資訊
常見:
200 OK //用戶端請求成功
400 Bad Request //用戶端請求有文法錯誤,不能被伺服器所了解
401 Unauthorized //請求未經授權,這個狀态代碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden //伺服器收到請求,但是拒絕提供服務
404 Not Found //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //伺服器發生不可預期的錯誤
503 Server Unavailable //伺服器目前不能處理用戶端的請求,一段時間後可能恢複正常
eg:HTTP/1.1 200 OK (CRLF)
常見的配置檔案說明
1, error_log file | stderr [debug | info | notice | warn | error | crit | alert | emerg ]
debug --- 調試級别 輸出日志資訊最全
info --- 普通級别 輸出提示資訊
notice --- 注意級别 輸出注意資訊
warn --- 警告級别 輸出一些無關緊要的錯誤資訊
error --- 錯誤級别 有影響服務正常運作的錯誤
crit --- 嚴重錯誤級别 嚴重錯誤級别
alert --- 十分嚴重級别 十分嚴重
emerg --- 超級嚴重 超級嚴重
nginx伺服器的日志檔案輸出到某一檔案或者輸出到标準輸出錯誤輸出到stder:
後面則是跟的日志級别可選項, 由低到高分為debug .... emerg 設定級别後聯通進階别也會别記錄
2, user user group
配置啟動程式的使用者 使用者 組 希望所有能啟動則不寫
3, worker_processes number | auto
number 指定nginx程序做多産生woker peocess數
auto nginx 自動檢測程序數
4, pid file
指定pid檔案凡在哪裡
pid log/nginx.pid 注意設定的時候要配置檔案名,不然找不到
5, include file
包含的配置檔案,引入其他的配置
6, acept_mutex on | off
設定網絡的連接配接序列化
7, multi_accept on| off
設定是否允許同時接受多個網絡連接配接
8, use method
事件驅動模型的選擇
9, worker_connections number
配置允許每一個workr process 最大連接配接數, 預設是1024
10, mime-type
配置資源類型,mime-type是網絡資源的一種媒體類型
格式: default_type mime-type
11, access_log path[format[buffer=size]]
自定義伺服器的日志
path: 配置伺服器日志檔案的存放的路徑和名稱
format: 可選項,自定義伺服器日志的格式字元串
size: 配置臨時存放日志的記憶體緩沖區大小
12, log_format name sting ...;
與access_log聯合使用 ,專門用于定義伺服器日志的格式
并且可以為格式定義一個名字, 讓access_log 友善調用
name : 格式字元串的名字 預設combined
string 服務日志的格式字元串
log_format main 'remote_addr - remote_user [time_local] "status body_bytes_sent "http_referer" ' '"
$remote_addr 10.0.0.1 ---通路者源位址資訊
$remote_user - -- nginx伺服器驚醒認證通路時,顯示的認證資訊
[$time_local] --- 顯示通路時間搓資訊
"$request" "GET / HTTP/1.1" --- 請求的行
$status 200 --- 顯示狀态嗎資訊 顯示304的話是因為讀取緩存
$body_bytes_sent 256 --- 響應資料的大小資訊
"http_refer" --- 連結目的地
"$http_user_agent" --- 用戶端通路的浏覽器資訊
"$http_X_forwarded_for" 簡稱XFF頭,它代表用戶端,也就是HTTP的請求端真實的IP,隻有在通過了HTTP 代理或者負載均衡伺服器時才會添加該項。它不是RFC中定義的标準請求頭資訊,在squid緩存代理伺服器開發文檔中可以找到
13, sendfile no | off
配置允許sendfile方式傳輸檔案
14, sendfile_max_chunk size
配置nginx程序的每個worker_process每次調用senfile()傳輸資料量最大不能超過的值
15, keepalive_timeout timeout[header_timeout];
配置連接配接逾時時間
timeout 服務端對連接配接的保持時間
header_timeout, 應答封包頭部的keeplive域設定逾時時間
16, keepalive_repuests number
單連結請求數上限
17, 配置網絡監聽
配置監聽有三種方法:
監聽IP位址:
listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbuf=size]
[sndbuf=size] [deferred]
監聽配置端口:
listen port [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size]
[accept_file=filter]
監聽socket
listen unix:path [default_server] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_file=filter]
[deferred]
address : IP位址
port: 端口号
path: socket檔案路徑
default_server: 辨別符,将此虛拟主機設定為address:port預設主機
setfib=number: 目前支隊freeBSD有用 以前是0.8.44版本監聽scoket關聯路由表
backlog=number: 設定監聽函數listen()最多永續多少網絡連接配接挂起 freeBSD預設為-1 其他511
rcvbuf=size: 監聽socket接受緩存區大小
sndbuf=size: 監聽socket發送緩存區大小
deferred :辨別符 将accept()設定為Deferred
accept_file=filter: 設定監聽端口對請求的過濾, 自對freeBSD和netBSd 5.0+的遊泳
bind: 辨別符 使用獨立的bind()處理address:port
ssl: 辨別符,設定繪畫連接配接使用ssl模式進行
18, server_name name
基于名稱的虛拟主機配置
對于多個比對成功的處理優先級:
準确比對server_name
通配符在開始時比對server_name成功
通配符在結尾是比對server_那麼成功
正規表達式比對server_name成功
在上訴比對模式中被多次比對會首先處理首次比對成的清求
19, root path
配置請求的根目錄
web伺服器接收到請求後,需要在伺服器指定的目錄尋找請求資源,
這個路徑就是指定檔案目錄
20, alias path (location子產品中使用)
更改location接收到的URI的請求路徑 可以跟着變量資訊
21, index file ...;
設定網站的預設首頁
22, error_page code ...[=[response]] uri
設定錯誤頁面資訊
code 要處理的http錯誤代碼
resoonse 可選項 講code指定的錯誤代碼轉化為新的錯誤代碼
uri 錯誤頁面的路徑或者網站位址
23, allow address | CIDR |all
配置基于ip的通路允許權限
address 允許通路用戶端的ip 不支援設定多個
CIDR 允許通路的用戶端的CIDR 如185.199.110.153/24
all 表示所有用戶端可以通路
24, deny address | CIDR |all
配置基于ip的通路禁止權限
address 允許通路用戶端的ip 不支援設定多個
CIDR 允許通路的用戶端的CIDR 如185.199.110.153/24
all 表示所有用戶端可以通路
25, auth_basic string |off
配置基于密碼的nginx通路權限
string 開啟認證功能,并配置驗證式的訓示資訊
off 關閉
26, auth_basic_user_file file
配置基于密碼通路nginx通路的權限檔案
file檔案需要使用絕對路徑