99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Nginx在企業(yè)環(huán)境中的調(diào)優(yōu)策略

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-07-14 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

Nginx作為現(xiàn)代互聯(lián)網(wǎng)架構中最重要的Web服務器和反向代理服務器,其性能調(diào)優(yōu)對企業(yè)級應用的穩(wěn)定性和效率至關重要。本指南將從運維實踐角度出發(fā),詳細介紹Nginx在企業(yè)環(huán)境中的各種調(diào)優(yōu)策略和最佳實踐。

一、基礎配置調(diào)優(yōu)

1.1 工作進程配置

# 根據(jù)CPU核心數(shù)設置工作進程數(shù)
worker_processesauto;

# 工作進程綁定CPU核心
worker_cpu_affinityauto;

# 單個工作進程最大連接數(shù)
worker_connections65535;

# 工作進程最大打開文件數(shù)
worker_rlimit_nofile65535;

1.2 事件模型優(yōu)化

events{
 # 使用epoll事件模型(Linux系統(tǒng))
 useepoll;
 
 # 允許同時接受多個新連接
 multi_accepton;
 
 # 工作進程最大連接數(shù)
 worker_connections65535;
 
 # 接受連接鎖
 accept_mutexoff;
}

1.3 網(wǎng)絡連接優(yōu)化

# 啟用高效文件傳輸
sendfileon;

# 優(yōu)化sendfile性能
tcp_nopushon;
tcp_nodelayon;

# 連接保持時間
keepalive_timeout65;
keepalive_requests100;

# 客戶端請求頭超時
client_header_timeout15;

# 客戶端請求體超時
client_body_timeout15;

# 向客戶端發(fā)送響應超時
send_timeout15;

二、內(nèi)存和緩沖區(qū)調(diào)優(yōu)

2.1 緩沖區(qū)設置

# 客戶端請求頭緩沖區(qū)
client_header_buffer_size4k;
large_client_header_buffers88k;

# 客戶端請求體緩沖區(qū)
client_body_buffer_size128k;
client_max_body_size100m;

# 代理緩沖區(qū)
proxy_buffer_size4k;
proxy_buffers84k;
proxy_busy_buffers_size8k;

# FastCGI緩沖區(qū)
fastcgi_buffer_size4k;
fastcgi_buffers84k;
fastcgi_busy_buffers_size8k;

2.2 文件緩存配置

# 打開文件緩存
open_file_cachemax=100000inactive=20s;
open_file_cache_valid30s;
open_file_cache_min_uses2;
open_file_cache_errorson;

# 日志緩存
access_log/var/log/nginx/access.log main buffer=32kflush=5s;
error_log/var/log/nginx/error.logwarn;

三、壓縮優(yōu)化

3.1 Gzip壓縮

# 啟用Gzip壓縮
gzipon;
gzip_varyon;
gzip_min_length1000;
gzip_comp_level6;
gzip_proxiedany;

# 壓縮文件類型
gzip_types
  text/plain
  text/css
  text/xml
  text/javascript
  application/javascript
  application/json
  application/xml+rss
  application/atom+xml
  image/svg+xml;

# 壓縮緩沖區(qū)
gzip_buffers168k;
gzip_http_version1.1;

3.2 Brotli壓縮(需要模塊支持)

# 啟用Brotli壓縮
brotlion;
brotli_comp_level6;
brotli_min_length1000;
brotli_types
  text/plain
  text/css
  text/xml
  text/javascript
  application/javascript
  application/json
  application/xml
  application/rss+xml
  application/atom+xml
  image/svg+xml;

四、SSL/TLS優(yōu)化

4.1 SSL配置優(yōu)化

# SSL協(xié)議版本
ssl_protocolsTLSv1.2TLSv1.3;

# 加密套件
ssl_ciphersECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_cipherson;

# SSL會話緩存
ssl_session_cacheshared50m;
ssl_session_timeout1d;
ssl_session_ticketsoff;

# OCSP Stapling
ssl_staplingon;
ssl_stapling_verifyon;
ssl_trusted_certificate/path/to/ca-bundle.crt;

4.2 HTTP/2配置

server{
 listen443ssl http2;
 server_nameexample.com;
 
 # HTTP/2推送
 http2_push_preloadon;
 
 # 其他SSL配置...
}

五、負載均衡和代理優(yōu)化

5.1 上游服務器配置

upstreambackend {
 # 負載均衡算法
  ip_hash;
 
 # 后端服務器
 server192.168.1.10:8080weight=3max_fails=3fail_timeout=30s;
 server192.168.1.11:8080weight=2max_fails=3fail_timeout=30s;
 server192.168.1.12:8080weight=1max_fails=3fail_timeout=30sbackup;
 
 # 連接保持
 keepalive32;
 keepalive_requests100;
 keepalive_timeout60s;
}

5.2 代理配置優(yōu)化

location/ {
 proxy_passhttp://backend;
 
 # 代理超時設置
 proxy_connect_timeout5s;
 proxy_send_timeout60s;
 proxy_read_timeout60s;
 
 # 代理緩沖
 proxy_bufferingon;
 proxy_buffer_size4k;
 proxy_buffers84k;
 
 # 代理頭信息
 proxy_set_headerHost$host;
 proxy_set_headerX-Real-IP$remote_addr;
 proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
 proxy_set_headerX-Forwarded-Proto$scheme;
 
 # HTTP版本
 proxy_http_version1.1;
 proxy_set_headerConnection"";
}

六、緩存策略

6.1 靜態(tài)資源緩存

# 圖片、CSS、JS緩存
location~* .(jpg|jpeg|png|gif|ico|css|js)${
 expires1y;
 add_headerCache-Control"public, immutable";
 add_headerVary Accept-Encoding;
}

# 字體文件緩存
location~* .(woff|woff2|ttf|eot)${
 expires1y;
 add_headerCache-Control"public";
 add_headerAccess-Control-Allow-Origin *;
}

6.2 代理緩存

# 緩存配置
proxy_cache_path/var/cache/nginx levels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;

server{
 location/ {
   proxy_cachemy_cache;
   proxy_cache_valid20030210m;
   proxy_cache_valid4041m;
   proxy_cache_use_staleerrortimeout updating http_500 http_502 http_503 http_504;
   proxy_cache_lockon;
   proxy_cache_lock_timeout5s;
   
   # 緩存key
   proxy_cache_key$scheme$proxy_host$request_uri;
   
   # 緩存頭信息
   add_headerX-Cache-Status$upstream_cache_status;
   
   proxy_passhttp://backend;
  }
}

七、安全加固

7.1 基礎安全配置

# 隱藏版本信息
server_tokensoff;

# 安全頭
add_headerX-Frame-Options"SAMEORIGIN"always;
add_headerX-Content-Type-Options"nosniff"always;
add_headerX-XSS-Protection"1; mode=block"always;
add_headerReferrer-Policy"strict-origin-when-cross-origin"always;

# 限制請求方法
if($request_method!~ ^(GET|HEAD|POST)$){
 return405;
}

7.2 請求限制

# 限制請求頻率
limit_req_zone$binary_remote_addrzone=api:10mrate=10r/s;
limit_req_zone$binary_remote_addrzone=login:10mrate=1r/s;

server{
 location/api/ {
   limit_reqzone=api burst=20nodelay;
   limit_req_status429;
  }
 
 location/login {
   limit_reqzone=login burst=5nodelay;
   limit_req_status429;
  }
}

# 限制連接數(shù)
limit_conn_zone$binary_remote_addrzone=conn_limit_per_ip:10m;
limit_connconn_limit_per_ip10;

八、監(jiān)控和日志

8.1 訪問日志優(yōu)化

# 自定義日志格式
log_formatmain'$remote_addr-$remote_user[$time_local] "$request" '
       '$status$body_bytes_sent"$http_referer" '
       '"$http_user_agent" "$http_x_forwarded_for" '
       '$request_time$upstream_response_time';

# 條件日志記錄
map$status$loggable{
  ~^[23] 0;
 default1;
}

access_log/var/log/nginx/access.log main buffer=32kflush=5sif=$loggable;

8.2 狀態(tài)監(jiān)控

# 啟用狀態(tài)頁面
location/nginx_status {
 stub_statuson;
 access_logoff;
 allow127.0.0.1;
 allow192.168.1.0/24;
 denyall;
}

九、系統(tǒng)級優(yōu)化

9.1 內(nèi)核參數(shù)調(diào)優(yōu)

# /etc/sysctl.conf
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65535
fs.file-max = 6815744

9.2 文件描述符限制

# /etc/security/limits.conf
nginx soft nofile 65535
nginx hard nofile 65535
nginx softnproc65535
nginx hardnproc65535

十、性能監(jiān)控和調(diào)優(yōu)工具

10.1 監(jiān)控指標

關鍵監(jiān)控指標包括:

? 請求處理時間

? 并發(fā)連接數(shù)

? 錯誤率

? 內(nèi)存使用情況

? CPU使用率

? 網(wǎng)絡帶寬利用率

10.2 性能測試工具

# 使用wrk進行壓力測試
wrk -t12 -c400 -d30s --latency http://example.com/

# 使用ab進行基準測試
ab -n 10000 -c 100 http://example.com/

# 使用siege進行并發(fā)測試
siege -c 100 -t 30s http://example.com/

十一、最佳實踐總結

1.合理配置工作進程數(shù):通常設置為CPU核心數(shù)或使用auto自動檢測

2.優(yōu)化緩沖區(qū)大小:根據(jù)實際業(yè)務需求調(diào)整緩沖區(qū)大小

3.啟用壓縮:對文本類型資源啟用gzip壓縮

4.配置合理的超時時間:避免長時間占用連接

5.使用HTTP/2:提升多路復用性能

6.實施緩存策略:合理設置靜態(tài)資源和代理緩存

7.定期監(jiān)控和優(yōu)化:持續(xù)監(jiān)控性能指標并進行調(diào)優(yōu)

十二、故障排查

12.1 常見問題診斷

# 檢查Nginx配置
nginx -t

# 查看錯誤日志
tail-f /var/log/nginx/error.log

# 檢查進程狀態(tài)
ps aux | grep nginx

# 查看連接狀態(tài)
netstat -an | grep :80 |wc-l

# 檢查文件描述符使用情況
lsof -u nginx |wc-l

12.2 性能問題排查

當遇到性能問題時,應該:

1. 檢查系統(tǒng)資源使用情況

2. 分析訪問日志模式

3. 監(jiān)控上游服務器響應時間

4. 檢查緩存命中率

5. 分析網(wǎng)絡連接狀態(tài)

通過系統(tǒng)性的調(diào)優(yōu)和持續(xù)的監(jiān)控,可以顯著提升Nginx在企業(yè)環(huán)境中的性能表現(xiàn),確保業(yè)務的穩(wěn)定運行。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 互聯(lián)網(wǎng)

    關注

    55

    文章

    11249

    瀏覽量

    106389
  • 服務器
    +關注

    關注

    13

    文章

    9793

    瀏覽量

    87956
  • nginx
    +關注

    關注

    0

    文章

    171

    瀏覽量

    12595

原文標題:大廠Nginx調(diào)優(yōu)秘籍:QPS提升500%的核心配置技巧

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    KeenTune的算法之心——KeenOpt 調(diào)優(yōu)算法框架 | 龍蜥技術

    調(diào)優(yōu)算法,本質(zhì)上是一個漆黑的空間中摸索,而隨著維度的增加,這個漆黑的環(huán)境的 volume 急劇增大,摸索的時間成本的增加是不可避免的。對于機器學習模型超參數(shù)的
    發(fā)表于 10-28 10:36

    如何對電機進行調(diào)優(yōu)調(diào)優(yōu)的好處是什么?

    如何自動對電機進行調(diào)優(yōu)
    的頭像 發(fā)表于 08-22 00:03 ?3458次閱讀

    基于臭氧的Kafka自適應調(diào)優(yōu)方法ENLHS

    Kafka應用在生產(chǎn)環(huán)境時,除機器的硬件環(huán)境和系統(tǒng)平臺影響其性能外,Kaka自身的配置項決定著其能否硬件資源有限的情況下達到理想的性能,但人為修改和
    發(fā)表于 05-13 11:39 ?7次下載

    Linux用電功耗調(diào)優(yōu)的筆記分享

    整理一些Linux用電功耗調(diào)優(yōu)的筆記,分享給小伙伴,關于用電調(diào)優(yōu)個人覺得
    的頭像 發(fā)表于 06-23 15:19 ?4778次閱讀

    關于JVM的調(diào)優(yōu)知識

    最近很多小伙伴跟我說,自己學了不少JVM的調(diào)優(yōu)知識,但是實際工作卻不知道何時對JVM進行調(diào)優(yōu)
    的頭像 發(fā)表于 09-14 14:54 ?1059次閱讀

    KeenOpt調(diào)優(yōu)算法框架實現(xiàn)對調(diào)優(yōu)對象和配套工具的快速適配

    化的調(diào)優(yōu)算法。 聰明的童鞋一定會自然問出一個問題:為什么不能只調(diào)用當前流行的調(diào)優(yōu)算法庫,而要打造一個算法框架呢?這就要從我們調(diào)
    的頭像 發(fā)表于 11-11 09:31 ?1145次閱讀

    Alluxio線程池結構與吞吐量調(diào)優(yōu)

    本文介紹了 Alluxio Master 的線程池結構與每個線程的功能。調(diào)優(yōu)過程,利用分析結果調(diào)整審計日志的 blocking queue,調(diào)整 UFS-SYNC-PREFETCH
    發(fā)表于 11-11 11:36 ?782次閱讀

    高性能Nginx HTTPS調(diào)優(yōu)-如何為HTTPS提速30%

    Nginx 常作為最常見的服務器,常被用作負載均衡 (Load Balancer)、反向代理 (Reverse Proxy),以及網(wǎng)關 (Gateway) 等等。一個配置得當?shù)?Nginx 服務器單機應該可以期望承受住 50K 到 80K 左右每秒的請求,同時將 CPU
    的頭像 發(fā)表于 01-16 11:20 ?1107次閱讀

    javajvm調(diào)優(yōu)有幾種方法

    JVM調(diào)優(yōu)是Java應用程序性能優(yōu)化過程的重要步驟,它通過針對JVM進行優(yōu)化來提高應用程序的性能和可靠性。JVM調(diào)優(yōu)可以根據(jù)具體的場景和需
    的頭像 發(fā)表于 12-05 11:11 ?2425次閱讀

    什么場景需要jvm調(diào)優(yōu)

    JVM調(diào)優(yōu)是指對Java虛擬機進行性能優(yōu)化和資源管理,以提高應用程序的運行效率和吞吐量。JVM調(diào)優(yōu)的場景有很多,下面將詳細介紹各種不同的場景。 高并發(fā)場景:
    的頭像 發(fā)表于 12-05 11:14 ?1774次閱讀

    jvm調(diào)優(yōu)主要是調(diào)哪里

    JVM調(diào)優(yōu)主要涉及內(nèi)存管理、垃圾回收、線程管理與鎖優(yōu)化等方面。下面將詳細介紹每個方面的調(diào)優(yōu)技術和策略以及如何進行優(yōu)化。 內(nèi)存管理 JVM的內(nèi)
    的頭像 發(fā)表于 12-05 11:37 ?1842次閱讀

    鴻蒙開發(fā)實戰(zhàn):【性能調(diào)優(yōu)組件】

    性能調(diào)優(yōu)組件包含系統(tǒng)和應用調(diào)優(yōu)框架,旨在為開發(fā)者提供一套性能調(diào)優(yōu)平臺,可以用來分析內(nèi)存、性能等問
    的頭像 發(fā)表于 03-13 15:12 ?851次閱讀
    鴻蒙開發(fā)實戰(zhàn):【性能<b class='flag-5'>調(diào)</b><b class='flag-5'>優(yōu)</b>組件】

    深度解析JVM調(diào)優(yōu)實踐應用

    Tomcat自身的調(diào)優(yōu)是針對conf/server.xml的幾個參數(shù)的調(diào)優(yōu)設置。首先是對這幾個參數(shù)的含義要有深刻而清楚的理解。
    的頭像 發(fā)表于 04-01 10:24 ?784次閱讀
    深度解析JVM<b class='flag-5'>調(diào)</b><b class='flag-5'>優(yōu)</b>實踐應用

    xgboost超參數(shù)調(diào)優(yōu)技巧 xgboost圖像分類的應用

    一、XGBoost超參數(shù)調(diào)優(yōu)技巧 XGBoost(eXtreme Gradient Boosting)是一種基于梯度提升決策樹(GBDT)的高效梯度提升框架,機器學習競賽和實際業(yè)務應用
    的頭像 發(fā)表于 01-31 15:16 ?1230次閱讀

    Nginx性能優(yōu)化終極指南

    而worker 進程數(shù)默認為 1 。單進程最大連接數(shù)為1024。如下圖(打開Nginx目錄下的/conf/nginx.conf 文檔),現(xiàn)在我們來對這兩個數(shù)值進行調(diào)優(yōu)
    的頭像 發(fā)表于 06-16 13:44 ?252次閱讀
    <b class='flag-5'>Nginx</b>性能優(yōu)化終極指南