Nginx配置檔案-3
阿新 • • 發佈:2018-11-29
設定黑白名單:
語法:
allow
deny
作用位置:
http, server, location, limit_except
具體實現:
server {
server_name www.a.com;
listen 80;
root /web/a.com;
index index.html;
server_tokens off;
location /test {
root /www/html;
deny 172.20.23.23;
allow 172.20.23.33;
deny all;
}
location /test1 {
alias /mydata/html;
}
}
測試訪問:
[ [email protected]:17:48~]#curl http://www.a.com/test/
<h1>test location page for nginx</h1>
更改配置:
allow 172.20.23.33; --->換成deny
測試:
[[email protected]:21:16~]#curl http://www.a.com/test/
<html>
<head><title>403 Forbidden</title></head>
基於使用者的認證:
關鍵語法:
auth_basic "提醒語句"
官網說明:
Syntax: auth_basic string | off;
Default:
auth_basic off;
Context:http, server, location, limit_except
auth_basic_user_file
官網說明:
Syntax: auth_basic_user_file file;
Default: —
Context:http, server, location, limit_except
具體使用:
server {
location /test1 {
alias /mydata/html;
auth_basic "test nginx";
auth_basic_user_file /etc/nginx/conf.d/.npasswd;
}
}
設定使用者密碼:
[ [email protected]:28:47conf.d]#htpasswd -c -m /etc/nginx/conf.d/.npasswd tom
New password:
Re-type new password:
Adding password for user tom
測試:
[[email protected]:32:56~]#curl -u tom:123456 http://www.a.com/test1/
<h1>test alias for nginx</h1>
檢視狀態資訊:
stub_status on|off 具體使用: server { location /status { stub_status on; allow 172.20.23.33; deny all; } } 具體資訊解析: Active connections:當前狀態,活動狀態的連線數 accepts:統計總值,已經接受的客戶端請求的總數 handled:統計總值,已經處理完成的客戶端請求的總數 requests:統計總值,客戶端發來的總的請求數 Reading:當前狀態,正在讀取客戶端請求報文首部的連線的連線數 Writing:當前狀態,正在向客戶端傳送響應報文過程中的連線數 Waiting:當前狀態,正在等待客戶端發出請求的空閒連線數
設定訪問日誌格式:
設定格式:
log_format [log_name] '$1 $2 $3';
設定在http段中
引用日誌格式:
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
具體使用:
自定義日誌格式:
log_format test '$remote_addr:$remote_port $request_method $remote_user $status $http_user_agent $bytes_sent $gzip_ratio';
使用自定義格式:
server {
server {
server_name www.a.com;
listen 80;
root /web/a.com;
index index.html;
server_tokens off;
access_log /web/a.com/a.com.log test;
}
http核心模組的內建變數:
$uri:當前請求的uri,不帶引數
$host:http請求報文中host首部,如果請求中沒有host首部,則以處理此請求的虛擬主機名
代替!
$request_uri:請求的uri,帶完整引數
$hostname:nginx服務執行在的主機的主機名
$remote_addr:客戶端ip
$remote_port:客戶端埠
$remote_user:使用使用者認證時客戶端使用者輸入的使用者名稱
$request_filename:使用者請求中的RUI經過本地root或alias轉換後對映的本地的檔案或路徑
$request_method:請求方法
$server_addr:伺服器地址
$server_name:伺服器名稱
$server_port:伺服器埠
$server_protocol:伺服器向客戶端傳送響應時的協議 如http/1.1
$scheme:在請求中使用的scheme,如https http,哪個協議
$http_HEADER:匹配請求報文中指定的HEADER $http_host匹配請求報文中的host首部
$sent_http_HEADER:匹配響應報文中指定的HEADER---要小寫
例子:$http_content_type匹配響應報文中的content-type首部
$document_root:當前請求對映到的root配置項
日誌格式變數:
$status:用來引用狀態碼
$bytes_sent:傳送的位元組數
$http_referer:從哪個頁面跳轉過來的
$http_user_agent:瀏覽器的型別
$gzip_ratio:壓縮比例,配合壓縮功能
設定日誌快取:
open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache off;
快取各日誌檔案相關的元資料資訊
max:快取的最大檔案描述符數量
min_uses:在inactive指定的時長內訪問大於等於此值方可被當作活動項
inactive:非活動時長
valid:驗證快取中各快取項是否為活動項的時間間隔
壓縮功能:
關鍵設定:
gzip on|off
官網說明:
Syntax: gzip on | off;
Default:
gzip off;
Context:http, server, location, if in location
基本設定項:
gzip_buffers [n]:壓縮時緩衝大小
gzip_comp_level[0--9]:壓縮等級
gzip_distable [對哪種瀏覽器,檔案不壓縮]msie6
gzip_min_length [值]:內容大於這個值才會壓縮
gzip_http_version:壓縮後構建響應報文,使用那個版本 1.0/1.1
gzip_types:只對那些型別的網頁檔案做壓縮預設包含有text/html
gzip_buffers number size; 支援實現壓縮功能時緩衝區數量及每個快取區的大小
預設:32 4k 或 16 8k
gzip_vary on | off;如果啟用壓縮,是否在響應報文首部插入“Vary: Accept-Encoding
具體使用:
server {
location /test3/ {
gzip on;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types text/xml text/css text/plain application/javascript;
}
}
測試:
172.20.23.33:44018 GET - 200 curl/7.29.0 200 436946 "-" -->壓縮前
172.20.23.33:44020 GET - 200 curl/7.29.0 200 3252 "134.86"-->壓縮後