要優(yōu)化 nginx 性能,可調(diào)整以下關(guān)鍵設(shè)置:設(shè)置 worker 進(jìn)程數(shù)、連接數(shù)和文件描述符限制。配置事件處理方法為 epoll 或 kqueue。調(diào)整緩沖區(qū)大小和代理緩沖區(qū)設(shè)置。設(shè)置連接池超時時間和最大請求數(shù)。啟用 GZIP 壓縮和指定要壓縮的文件類型。啟用 sendfile、延遲數(shù)據(jù)發(fā)送和禁用延遲發(fā)送。
NGINX 優(yōu)化設(shè)置指南
為了優(yōu)化 NGINX 性能,需要對以下關(guān)鍵設(shè)置進(jìn)行調(diào)整:
1. Worker 進(jìn)程
- worker_processes: 設(shè)置為服務(wù)器物理核心數(shù)。例如,4 核服務(wù)器設(shè)置為 worker_processes 4;
- worker_connections: 設(shè)置為至少 1024,以處理大量并發(fā)連接。
2. 事件處理
- worker_rlimit_nofile: 增加文件描述符限制,以允許每個 worker 進(jìn)程打開更多連接。建議設(shè)置為 10240 或更高。
- events: 配置事件處理方法。對于高流量站點,建議使用 epoll 或 kqueue(如果可用)。
3. 緩沖區(qū)
- client_body_buffer_size: 調(diào)整客戶端請求緩沖區(qū)大小,以防止大型請求導(dǎo)致 502 錯誤。建議設(shè)置為 4k-8k。
- client_max_body_size: 設(shè)置最大請求正文大小,以防止惡意請求。建議設(shè)置為 1M-10M,具體取決于網(wǎng)站需求。
- proxy_buffer_size: 設(shè)置代理緩沖區(qū)大小,以處理大型響應(yīng)。建議設(shè)置為 4k-8k。
- proxy_buffers: 設(shè)置代理緩沖區(qū)數(shù)量,以提供更多緩沖空間。建議設(shè)置為 4-8。
- proxy_buffering: 啟用代理緩沖,以提高吞吐量。
4. 連接池
- keepalive_timeout: 設(shè)置連接保持活動的時間,以減少頻繁的握手。建議設(shè)置為 60-120 秒。
- keepalive_requests: 設(shè)置每個連接允許的最大請求數(shù),以防止連接被濫用。建議設(shè)置為 100-1000。
5. 壓縮
- gzip: 啟用 GZIP 壓縮,以減少響應(yīng)大小。
- gzip_min_length: 設(shè)置 gzip 壓縮的最小文件大小,以避免對小文件進(jìn)行不必要的壓縮。建議設(shè)置為 1k-2k。
- gzip_types: 指定要壓縮的文件類型。
6. 其他設(shè)置
- sendfile: 啟用 sendfile,以使用高效的內(nèi)核文件傳輸。
- tcp_nopush: 延遲數(shù)據(jù)發(fā)送,以提高吞吐量。
- tcp_nodelay: 禁用延遲發(fā)送,以減少延遲。
通過優(yōu)化這些設(shè)置,可以顯著提高 NGINX 的性能,處理更多請求并為用戶提供更好的體驗。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END