nginx之十四:優化指南
高層的配置:
worker_processes 定義了nginx對外提供web服務時的worker進程數
worker_rlimit_nofile 更改worker進程最大打開文件數量限制,如果沒有配置,以系統限制
EVENTS模塊:
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
worker_connections 設置一個worker進程同時打開的最大連接數
multi_accept 告訴nginx收到一個新鏈接通知後接受盡可能多的連接
use 設置用於服用客戶端線程的輪詢方法
3. HTTP模塊
http {
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
......
}
server_tokens 關閉版本信息
sendfile 可以讓sendfile()發揮作用。
tcp_nopush nginx在一個數據包裏發送所有頭文件,而不是一個一個發
tcp_nodelay nginx不緩存數據,而是一段一段發送
access_log 存儲訪問日誌
error_log 存儲錯誤日誌
keepalive_timeout 10; 分配給客戶端keep-alive鏈接超時時間
client_header_timeout 10; 設置請求頭,請求體的超時時間
client_body_timeout 10;
reset_timedout_connection on; 關閉不響應的客戶端連接,會釋放那個客戶端占用的內存空間
send_timeout 10; 指定客戶端響應超時時間
limit_conn_zone $binary_remote_addr zone=addr:5m;
limit_conn addr 100; 設置每個ip地址最大有100個鏈接,共享內存為5m
include /etc/nginx/mime.types;
default_type text/html;
charset UTF-8;
gzip on; 開啟gzip壓縮
gzip_disable "msie6"; 為制定客戶端禁用gzip功能,設置成ie6 使我們的方案更能夠兼容
gzip_static on; 告訴nginx在壓縮資源之前,先查找是否有預想gzip處理過的資源
gzip_proxied any; 允許或禁止壓縮基於請求和響應的響應流,設置成any所有都會壓縮
gzip_min_length 1000; 如果少於改字節數,不壓縮
gzip_comp_level 4; 設置壓縮等級
gzip_types text/plain text/css application/json application/x-javascript application/xml application/xml+rss text/javascript
設置需要壓縮的數據格式
open_file_cache_max=10000 inactive=20s; 打開緩存,指定緩存最大數目,以及緩存時間
open_file_cache_valid 30s;指定檢測正確信息的間隔時間
open_file_cache_min_uses 2;不活動時間期間裏最小的文件數
open_file_cache_error on;當搜索一個文件時是否緩存錯誤信息,
nginx之十四:優化指南