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