nginx優化一覽總結表
優化類型 | 優化說明 | 優化方法 |
安全優化 | 修改nginx配置文件實現優化 server_tokens off; | |
修改nginx源碼配置文件 nginx-1.6.3/src/core/nginx.h ngx_http_header_filter_module.c nginx-1.6.3/src/http/ngx_http_special_response.c | ||
性能優化 | woker_processes 8 一般和CPU的核數設置一致;高併發可以和CPU核數2倍 | |
利用worker_cpu_affinity進行優化 4顆CPU優化配置參數爲0001 0010 0100 1000 2顆CPU優化配置參數爲0101 1010 | ||
利用use epoll參數修改事件模型爲epoll模型 事件模型指定配置參數放置在event區塊中 | ||
利用worker_connections連接參數進行調整 用戶最大併發連接數=worker進程數*worker連接數 | ||
利用worker_rlimit_nofile參數進行調整(65535) | ||
利用sendfile on開啓高效傳輸模式 tcp_nopush on表示將數據積攢到一定的量再進行傳輸 tcp_nodelay on表示將數據信息進行快速傳輸 | ||
keepalive_timeout優化客戶端訪問nginx服務端超時時間 client_header_timeout優化服務端讀請求頭超時時間 client_body_timeout優化兩個請求主體發送間隔超時時間 send_timeout優化兩個響應信息的間隔超時時間 | ||
安全優化 | client_max_body_size設置客戶端請求報文主體最大尺寸 | |
性能優化 | 優化利用FastCGI與PHP連接緩衝信息 優化利用FastCGI與PHP連接緩存信息 | |
利用gzip命令進行對數據信息壓縮優化 從而節省網站帶寬資源 | ||
利用location匹配相應要緩存的信息,利用expires參數結合時間信息進行緩存。 | ||
日誌優化 | 進行日誌文件輪詢切割(系統自帶的logrotate切割nginx日誌) | |
安全優化 | 在動態解析配置前面,設置限制特定目錄下擴展名文件解析 限制指定目錄uri信息訪問,利用禁止策略和返回錯誤狀態碼 限制用戶訪問,利用白名單和黑名單方式 禁止非法域名解析訪問企業網站 | |
根據HTTP referer實現防盜鏈 根據cookie防盜鏈 通過加密變換訪問路徑實現防盜鏈 在產品設計上解決盜鏈方案 | ||
感知優化 | 對錯誤代碼實行本地頁面跳轉 優雅顯示錯誤頁面放到本地單獨目錄下,進行優雅顯示 改變狀態碼爲新的狀態碼,並顯示指定的文件內容 錯誤狀態碼URL重定向 將錯誤狀態碼重定向到一個location | |
安全優化 | 只將用戶上傳數據的目錄設置爲755,用戶和組使用nginx 其餘目錄和文件爲755/644,用戶和組使用root | |
利用robots.txt機器人協議防止爬蟲(君子協議) 利用$http_user_agent變量阻止爬蟲代理訪問(2種方法) 利用程序開發驗證碼信息,阻止進行爬蟲 | ||
利用$request_method限制請求方法 | ||
安全優化 | 利用nginx –c參數啓動nginx多實例,使master進程讓普通用戶管理 |