學習Nginx服務的難點在于對配置檔案的了解和優化,熟練掌握Nginx配置檔案參數的含義可以更快的掌握Nginx,以下為Nginx的配置檔案常用參數詳解:
user nginx nginx;
//定義Nginx運作的使用者和使用者組
worker_processes 8;
//啟動程序,通常設定成和伺服器本身CPU的數量相等
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
//為每個程序配置設定CPU,上列中将8個程序配置設定到了8個CPU,當然也可以寫多個,或者把一個程序分到多個CPU
worker_rlimit_nofile 102400;
//該指令是當一個Nginx程序打開的最多檔案描述符數目,理論值應該是最多打開檔案數(在指令行輸入ulimit -n)然後與Nginx程序數相除,但是Nginx配置設定請求并不是那麼的均勻,是以最好與ulimit -n的值保持一緻
error_log /var/log/nginx/err/error.log
//全局錯誤日志檔案,錯誤日志定義等級,[debug | info | notice | warn | error | crit ]
pid /var/run/nginx.pid;
//PID檔案
events {
use epoll;
//工作模式選用epoll,epoll是多路複用I/O中的一種方式,但是僅用于Linux 2.6以上的核心,可以大大提高Nginx的性能)
worker_connections 102400;
//單個背景woker process 程序的最大并發連接配接數量 (最大連接配接數=連接配接數*程序數)
multi_accept on;
//盡可能多地接受請求
}
//設定HTTP伺服器,利用它的反向代理功能提供負載均衡支援
http {
include mime.types;
default_type application/octet-stream;
//設定MIME類型,類型由mime.type檔案定義
access_log /var/log/nginx/access.log;
//設定日志格式
sendfile on;
//sendfile指定Nginx是否調用 sendfile 函數(zero copy 方式) 來輸出檔案,對于普通使用者必須設定為on,如果用來進行下載下傳等應用磁盤IO重負載的應用,可設定為off,以平衡磁盤與網絡IO處理速度,降低系統的uptime
autoindex on;
//開啟目錄清單通路,适合下載下傳伺服器,預設關閉
tcp_nopush on
//防止網絡阻塞
keepalive_timeout 60;
//keepalive 逾時時間,用戶端到伺服器端的連接配接持續有效時間,當出現對伺服器的後繼請求時,keepalive-timeout可以避免建立或重建立立連接配接
tcp_nodelay on;
//提高資料的實時響應性
gzip on;
//開啟gzip壓縮
gzip_min_length 1KB;
gzip_buffers 4 16KB;
gzip_http_version 1.1;
gzip_comp_level 2;
//壓縮級别大小,最大為9,值越小,壓縮後比例越小,CPU處理更快,值越大,消耗cpu比較高
gizp_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
client_max_body_size 10MB;
//允許用戶端請求的最大單檔案位元組數
client_body_buffer_size 128KB;
//緩沖區代理緩沖使用者端請求的最大位元組數
proxy_connect_timeout 90;
//Nginx跟後端伺服器連接配接逾時時間(代理連接配接逾時)
proxy_send_timeout 90;
//後端伺服器資料回傳時間(代理發送逾時)
proxy_read_timeout 90;
//連接配接成功後,後端伺服器響應時間(代理接受逾時)
proxy_buffer_size 4KB;
//設定代理伺服器(Nginx)儲存使用者頭資訊的緩沖區大小
proxy_buffers 4 32KB;
//proxy_buffers緩沖區,網頁平均在32KB以下的話,這樣設定
proxy_busy_buffers_size 64KB;
//高負載下緩沖大小(proxy_buffers*2)
//設定請求緩沖
large_client_header_buffers 4 4KB;
client_header_buffer_size 4KB;
//用戶端請求頭部的緩沖區大小,這個可以根據系統分頁大小來設定,一般一個請求的頭部大小不會超過1KB,不過由于一般系統的分頁都要大于1KB,是以這裡設定分頁的大小.分頁的大小可以通過指令getconf PAGESIZE取得
open_file_cache max=102400 inactive=20s;
//這個将為打開檔案指定緩存,預設是沒有啟用的,max指定緩存數量,建議和打開檔案數一緻,inactive是指經過多長時間檔案沒被請求後删除緩存
open_file_cache_valid 30s;
//這個是指多長時間檢查一次緩存的有效資訊
open_file_cache_min_uses 1;
//open_file_cache指令中的inactive參數時間内檔案的最少試用次數,如果超過這個數字,檔案描述符一直是在緩存中打開的,如上例,如果有一個檔案在inactive
include vhost.conf;
//包含其他配置檔案,如自定義的虛拟主機