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