worker_cpu_affinity auto;
Binds worker processes to the sets of CPUs.javascript
worker_rlimit_nofile number;
worker進程所能打開的最大文件描述符數量,通常與ulimit -n相同便可css
error_log logs/error.log;
存放錯誤日誌路徑html
pid logs/nginx.pid;
pid進程路徑java
event{
use epoll;
#epoll是多路複用IO(I/O Multiplexing)中的一種方式,可是僅用於linux2.6以上內核,能夠大大提升nginx的性能node
worker_connections 1024;
#單個後臺worker process進程的最大併發連接數linux
accept_mutex off;
#當一個新鏈接到達時,若是激活了accept_mutex,那麼多個Worker將以串行方式來處理,其中有一個Worker會被喚醒,其餘的Worker繼續保持休眠狀態;若是沒有激活accept_mutex,那麼全部的Worker都會被喚醒,不過只有一個Worker能獲取新鏈接,其它的Worker會從新進入休眠狀態,這就是「驚羣問題」。通常爲了吞吐量仍是關閉好一點。
multi_accept on;
#儘量多的接受請求,不然一個worker進程只接收一個鏈接。
}nginx
http{
include mime.types; #文件擴展名與類型映射表緩存
default_type application/octet-stream; #默認文件類型服務器
#設定請求緩存
server_names_hash_bucket_size 128;
#設置服務器名稱哈希表的存儲大小。默認值取決於處理器緩存行的大小。網絡
client_header_buffer_size 128k;
#設置客戶端請求頭的緩衝區大小。對於大多數請求,1K字節的緩衝區就足夠了。
client_body_buffer_size 128K;
#緩衝區請求body最大緩存
sendfile on;
#開啓高速傳輸。不適用於下載等高IO應用。
tcp_nopush on;
#激活tcp_nopush參數能夠容許把httpresponse header和文件的開始放在一個文件裏發佈,積極的做用是減小網絡報文段的數量
tcp_nodelay on;
#激活tcp_nodelay,內核會等待將更多的字節組成一個數據包,從而提升I/O性能
gzip on;
gzip_min_length 1K;
#設置容許壓縮的頁面最小字節數,
gzip_comp_level 9;
#壓縮比率。用來指定GZIP壓縮比,1壓縮比最小,處理速度最快;9壓縮比最大,傳輸速度快,但處理最慢,也比較消耗cpu資源。
gzip_types text/plain application/x-javascript text/css application/xml;
#用來指定壓縮的類型,「text/html」類型老是會被壓縮
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#設置日誌格式
keepalive_timeout 65;
#保持鏈接超時數。可避免從新鏈接。
server{
location /{
}
}
}