nginx:
master/worker
master:配置文件分析和加載、管理worker、平滑升級;
worker:處理用戶請求;
cache loader, cache manager:緩存加載和緩存管理
user
Syntax: user user [group];
Default: user nobody nobody;
Context: main
pid /PATH/TO/PID_FILE;
指定存儲nginx主進程進程號碼的文件路徑;
include file | mask;
指明包含進來的其它配置文件片斷;
load_module file;
性能優化相關的配置:
1、worker_processes number | auto;
worker進程的數量;通常應該等于小于當前主機的cpu的物理核心數;
auto:當前主機物理CPU核心數;
2、worker_cpu_affinity cpumask …;
worker_cpu_affinity auto [cpumask];
CPU MASK:
00000000:
00000001:0號CPU
00000010:1號CPU
` 3、worker_priority number;
指定worker進程的nice值,設定worker進程優先級;[-20,20]
4、worker_rlimit_nofile number;
worker進程所能夠打開的文件數量上限;
調試、定位問題:
1、daemon on|off;
是否以守護進程方式運行Nignx;
2、master_process on|off;
是否以master/worker模型運行nginx;默認為on;
3、error_log file [level];
worker_connections number;
每個worker進程所能夠打開的最大并發連接數數量;
use method;
指明并發連接請求的處理方法;
accept_mutex on | off;
處理新的連接請求的方法;on意味著由各worker輪流處理新請求,Off意味著每個新請求的到達都會通知所有的worker進程;
server { … }
配置一個虛擬主機;
listen PORT監聽端口
server_name name …;
指明虛擬主機的主機名稱;后可跟多個由空白字符分隔的字符串;
tcp_nodelay on | off;
在keepalived模式下的連接是否啟用TCP_NODELAY選項;
tcp_nopush on|off;
在sendfile模式下,是否啟用TCP_CORK選項;
sendfile on | off;
是否啟用sendfile功能;
root path;
設置web資源路徑映射;
location [ = | ~ | ~* | ^~ ] uri { … }
設置配置取決于請求URI
alias path;
定義路徑別名,文檔映射的另一種機制;
index file …;
默認資源;http, server, location;
error_page code … [=[response]] uri;
定義將顯示指定錯誤的URI
try_files file … uri;
定義客戶端請求的相關配置
keepalive_timeout timeout [header_timeout];
設定保持連接的超時時長,0表示禁止長連接;默認為75s;
keepalive_requests number;
在一次長連接上所允許請求的資源的最大數量,默認為100;
keepalive_disable none | browser …;
對哪種瀏覽器禁用長連接;
send_timeout time;
向客戶端發送響應報文的超時時長,此處,是指兩次寫操作之間的間隔時長;
client_body_buffer_size size;
用于接收客戶端請求報文的body部分的緩沖區大?。荒J為16k;
client_body_temp_path path [level1 [level2 [level3]]];
設定用于存儲客戶端請求報文的body部分的臨時存儲路徑及子目錄結構和數量;
limit_rate rate;
限制響應給客戶端的傳輸速率,單位是bytes/second,0表示無限制;
limit_except method … { … }
限制對指定的請求方法之外的其它方法的使用客戶端;
aio on | off | threads[=pool];
是否啟用aio功能;
directio size | off;
在Linux主機啟用O_DIRECT標記,此處意味文件大于等于給定的大小時使用,例如directio 4m;
open_file_cache_valid time;
緩存項有效性的檢查頻率;默認為60s;
open_file_cache_min_uses number;
在open_file_cache指令的inactive參數指定的時長內,至少應該被命中多少次方可被歸類為活動項;
open_file_cache_errors on | off;
是否緩存查找時發生錯誤的文件一類的信息;
ngx_http_access_module模塊:
實現基于ip的訪問控制功能
allow address | CIDR | unix: | all;白名單
deny address | CIDR | unix: | all;黑名單
ngx_http_auth_basic_module模塊
ngx_http_stub_status_module模塊
用于輸出nginx的基本狀態信息;
ngx_http_log_module模塊
他的ngx_http_log_module模塊以指定的格式寫入請求日志
log_format name string …;
string可以使用nginx核心模塊及其它模塊內嵌的變量;
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
訪問日志文件路徑,格式及相關的緩沖的配置;
buffer=size
flush=time
open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
緩存各日志文件相關的元數據信息;
max:緩存的最大文件描述符數量;
min_uses:在inactive指定的時長內訪問大于等于此值方可被當作活動項;
inactive:非活動時長;
valid:驗正緩存中各緩存項是否為活動項的時間間隔;
gzip on | off;
啟用或禁用響應的gzipping .
gzip_comp_level level;
設置響應的gzip壓縮級別??山邮艿闹翟?/span>1到9之間
gzip_disable regex …;
禁用gzipping oef響應請求與“用戶代理”頭字段匹配任何指定的正則表達式
gzip_min_length length;
啟用壓縮功能的響應報文大小閾值;
gzip_buffers number size;
支持實現壓縮功能時為其配置的緩沖區數量及每個緩存區的大?。?/p>
gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any …;
nginx作為代理服務器接收到從被代理服務器發送的響應報文后,在何種條件下啟用壓縮功能的;
off:對代理的請求不啟用
no-cache, no-store,private:表示從被代理服務器收到的響應報文首部的 Cache-Control的值為此三者中任何一個,則啟用壓縮功能;
gzip_types mime-type …;
壓縮過濾器,僅對此處設定的MIME類型的內容啟用壓縮功能;
sl on | off;
為給定的虛擬服務器啟用HTTPS協議
ssl_certificate file;
當前虛擬主機使用PEM格式的證書文件;
ssl_certificate_key file;
當前虛擬主機上與其證書匹配的私鑰文件;
ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];
支持ssl協議版本,默認為后三個;
ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
builtin[:size]:使用OpenSSL內建的緩存,此緩存為每worker進程私有;
[shared:name:size]:在各worker之間使用一個共享的緩存;
ssl_session_timeout time;
客戶端一側的連接可以復用ssl session cache中緩存 的ssl參數的有效時長;
原創文章,作者:忠神通,如若轉載,請注明出處:http://www.www58058.com/78254