企業級Nginx Web服務優化實戰

 

「海納百川,有容乃大;壁立千仞,無欲則剛node

 

正文web

 web優化一覽總結表

優化類型緩存

優化說明安全

優化方法性能優化

安全優化cookie

  1. 隱藏nginx版本信息優化

修改nginx配置文件實現優化架構

server_tokens off;併發

  1. 修改nginx版本信息優化

修改nginx源碼配置文件tcp

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

  1. 修改nginx軟件work_processes進程用戶信息

修改nginx默認用戶,利用配置文件參數實現

修改nginx默認用戶,採用編譯參數方式實現

性能優化

  1. 修改nginx件work_processes進程數量

woker_processes 8

通常和CPU的核數設置一致;高併發能夠和CPU核數2倍

  1. 優化nginx服務進程均勻分配到不一樣CPU進行處理

利用worker_cpu_affinity進行優化

4顆CPU優化配置參數爲0001 0010 0100 1000

2顆CPU優化配置參數爲0101 1010

  1. 優化nginx事件處理模型

利用use epoll參數修改事件模型爲epoll模型

事件模型指定配置參數放置在event區塊中

  1. 優化nginx單進程客戶端鏈接數

利用worker_connections鏈接參數進行調整

用戶最大併發鏈接數=worker進程數*worker鏈接數

  1. 優化nginx服務進程打開文件數

利用worker_rlimit_nofile參數進行調整(65535)

  1. 優化nginx服務數據高效傳輸模式

利用sendfile on開啓高效傳輸模式

tcp_nopush on表示將數據積攢到必定的量再進行傳輸

tcp_nodelay on表示將數據信息進行快速傳輸

  1. 優化nginx服務超時信息

keepalive_timeout優化客戶端訪問nginx服務端超時時間

client_header_timeout優化服務端讀請求頭超時時間

client_body_timeout優化兩個請求主體發送間隔超時時間

send_timeout優化兩個響應信息的間隔超時時間

安全優化

  1. 優化nginx服務上傳文件限制

client_max_body_size設置客戶端請求報文主體最大尺寸

性能優化

  1. 優化nginx服務與FastCGI鏈接緩存與緩衝信息

優化利用FastCGI與PHP鏈接緩衝信息

優化利用FastCGI與PHP鏈接緩存信息

  1. 配置Nginx gzip壓縮實現性能優化

利用gzip命令進行對數據信息壓縮優化

從而節省網站帶寬資源

  1. 配置Nginx expires實現讓客戶端緩存數據

利用location匹配相應要緩存的信息,利用expires參數結合時間信息進行緩存。

日誌優化

  1. 配置Nginx服務相關日誌操做

進行日誌文件輪詢切割

部分日誌內容不進行記錄,節省系統磁盤空間

對日誌文件進行受權

  1. Nginx站點目錄及文件URL訪問控制

在動態解析配置前面,設置限制特定目錄下擴展名文件解析

限制指定目錄uri信息訪問,利用禁止策略和返回錯誤狀態碼

限制用戶訪問,利用白名單和黑名單方式

禁止非法域名解析訪問企業網站

安全優化

  1. Nginx圖片及目錄防盜鏈解決方案

根據HTTP referer實現防盜鏈

根據cookie防盜鏈

經過加密變換訪問路徑實現防盜鏈

在產品設計上解決盜鏈方案

感知優化

  1. Nginx錯誤頁面的優雅顯示

對錯誤代碼實行本地頁面跳轉

優雅顯示錯誤頁面放到本地單獨目錄下,進行優雅顯示

改變狀態碼爲新的狀態碼,並顯示指定的文件內容

錯誤狀態碼URL重定向

將錯誤狀態碼重定向到一個location

安全優化

  1. Nginx站點目錄文件及目錄權限優化

只將用戶上傳數據的目錄設置爲755,用戶和組使用nginx

其他目錄和文件爲755/644,用戶和組使用root

  1. Nginx防爬蟲優化

利用robots.txt機器人協議防止爬蟲(君子協議)

利用$http_user_agent變量阻止爬蟲代理訪問(2種方法)

利用程序開發驗證碼信息,阻止進行爬蟲

  1. 利用Nginx限制請求訪問

利用$request_method限制請求方法

全面優化

  1. Nginx網站CDN加速優化

 

  1. Nginx程序架構優化

利用程序或反向代理實現架構訪問分離解耦優化

安全優化

  1. 使用普通用戶啓動Nginx

利用nginx –c參數啓動nginx多實例,使master進程讓普通用戶管理

  1. 控制nginx併發鏈接數

利用limit_conn_zone參數和$binary_remote_addr變量限制nginx單IP地址併發鏈接數

利用limit_conn_zone參數和$server_name r變量限制nginx虛擬主機總鏈接數

  1. 控制客戶端請求Nginx的速率
相關文章
相關標籤/搜索