#定義Nginx運行的用戶和用戶組javascript
user www www;css
#啓動進程,一般設置成和cpu的數量相等java
worker_processes 8;node
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;linux
#爲每一個進程分配cpu,上例中將8個進程分配到8個cpu,固然能夠寫多個,或者將一個進程分配到多個cpu。nginx
worker_rlimit_nofile 102400;後端
#這個指令是指當一個nginx進程打開的最多文件描述符數目,理論值應該是最多打緩存
#開文件數(ulimit -n)與nginx進程數相除,可是nginx分配請求並非那麼均勻服務器
#,因此最好與ulimit -n的值保持一致。網絡
#全局錯誤日誌及PID文件
error_log /usr/local/nginx/logs/error.log;
#錯誤日誌定義等級,[ debug | info | notice | warn | error | crit ]
pid /usr/local/nginx/nginx.pid;
#一個nginx進程打開的最多文件描述符數目,理論值應該是最多打開文件數(系統的值ulimit -n)與nginx進程數相除,可是nginx分配請求並不均勻.
#因此建議與ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
#工做模式及鏈接數上限
events {
use epoll; #epoll是多路複用IO(I/O Multiplexing)中的一種方式,可是僅用於linux2.6以上內核,能夠大大提升nginx的性能
worker_connections 102400; #單個後臺worker process進程的最大併發連接數 (最大鏈接數=鏈接數*進程數)
multi_accept on; #儘量多的接受請求
}
#設定http服務器,利用它的反向代理功能提供負載均衡支持
http {
#設定mime類型,類型由mime.type文件定義
include mime.types;
default_type application/octet-stream;
#定義默認的數據流
access_log /usr/local/nginx/log/nginx/access.log;
#設定日誌格式
sendfile on; 若是是下載的網站的話能夠關閉掉,能夠下降系統的IO
#sendfile 指令指定 nginx 是否調用 sendfile 函數(zero copy 方式)來輸出文件,對於普通應用必須設爲 on
#若是用來進行下載等應用磁盤IO重負載應用,可設置爲 off,以平衡磁盤與網絡I/O處理速度,下降系統的uptime.
#autoindex on; #開啓目錄列表訪問,合適下載服務器,默認關閉。
tcp_nopush on; #防止網絡阻塞
keepalive_timeout 60;
#keepalive超時時間,客戶端到服務器端的鏈接持續有效時間,當出現對服務器的後,繼請求時,keepalive-timeout功能可避免創建或從新創建鏈接。
tcp_nodelay on; #提升數據的實時響應性
#開啓gzip壓縮
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2; #壓縮級別大小,最大爲9,值越小,壓縮後比例越小,CPU處理更快。
#值越大,消耗CPU比較高。
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
client_max_body_size 10m; #容許客戶端請求的最大單文件字節數
client_body_buffer_size 128k; #緩衝區代理緩衝用戶端請求的最大字節數,
proxy_connect_timeout 90; #nginx跟後端服務器鏈接超時時間(代理鏈接超時)
proxy_send_timeout 90; #後端服務器數據回傳時間(代理髮送超時)
proxy_read_timeout 90; #鏈接成功後,後端服務器響應時間(代理接收超時)
proxy_buffer_size 4k; #設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
proxy_buffers 4 32k; #proxy_buffers緩衝區,網頁平均在32k如下的話,這樣設置
proxy_busy_buffers_size 64k; #高負荷下緩衝大小(proxy_buffers*2)
#設定請求緩衝
large_client_header_buffers 4 4k;
client_header_buffer_size 4k;
#客戶端請求頭部的緩衝區大小,這個能夠根據你的系統分頁大小來設置,通常一個請求的頭部大小不會超過1k
#不過因爲通常系統分頁都要大於1k,因此這裏設置爲分頁大小。分頁大小能夠用命令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 vhosts.conf;