天天看點

Nginx配置檔案優化

學習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;

//包含其他配置檔案,如自定義的虛拟主機

繼續閱讀