女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

Nginx在企業環境中的調優策略

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

掃碼添加小助手

加入工程師交流群

前言

Nginx作為現代互聯網架構中最重要的Web服務器和反向代理服務器,其性能調優對企業級應用的穩定性和效率至關重要。本指南將從運維實踐角度出發,詳細介紹Nginx在企業環境中的各種調優策略和最佳實踐。

一、基礎配置調優

1.1 工作進程配置

# 根據CPU核心數設置工作進程數
worker_processesauto;

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

# 單個工作進程最大連接數
worker_connections65535;

# 工作進程最大打開文件數
worker_rlimit_nofile65535;

1.2 事件模型優化

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

1.3 網絡連接優化

# 啟用高效文件傳輸
sendfileon;

# 優化sendfile性能
tcp_nopushon;
tcp_nodelayon;

# 連接保持時間
keepalive_timeout65;
keepalive_requests100;

# 客戶端請求頭超時
client_header_timeout15;

# 客戶端請求體超時
client_body_timeout15;

# 向客戶端發送響應超時
send_timeout15;

二、內存和緩沖區調優

2.1 緩沖區設置

# 客戶端請求頭緩沖區
client_header_buffer_size4k;
large_client_header_buffers88k;

# 客戶端請求體緩沖區
client_body_buffer_size128k;
client_max_body_size100m;

# 代理緩沖區
proxy_buffer_size4k;
proxy_buffers84k;
proxy_busy_buffers_size8k;

# FastCGI緩沖區
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;

三、壓縮優化

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;

# 壓縮緩沖區
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優化

4.1 SSL配置優化

# SSL協議版本
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配置...
}

五、負載均衡和代理優化

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 代理配置優化

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 靜態資源緩存

# 圖片、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;
  }
}

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

八、監控和日志

8.1 訪問日志優化

# 自定義日志格式
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 狀態監控

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

九、系統級優化

9.1 內核參數調優

# /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

十、性能監控和調優工具

10.1 監控指標

關鍵監控指標包括:

? 請求處理時間

? 并發連接數

? 錯誤率

? 內存使用情況

? CPU使用率

? 網絡帶寬利用率

10.2 性能測試工具

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

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

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

十一、最佳實踐總結

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

2.優化緩沖區大小:根據實際業務需求調整緩沖區大小

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

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

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

6.實施緩存策略:合理設置靜態資源和代理緩存

7.定期監控和優化:持續監控性能指標并進行調優

十二、故障排查

12.1 常見問題診斷

# 檢查Nginx配置
nginx -t

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

# 檢查進程狀態
ps aux | grep nginx

# 查看連接狀態
netstat -an | grep :80 |wc-l

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

12.2 性能問題排查

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

1. 檢查系統資源使用情況

2. 分析訪問日志模式

3. 監控上游服務器響應時間

4. 檢查緩存命中率

5. 分析網絡連接狀態

通過系統性的調優和持續的監控,可以顯著提升Nginx在企業環境中的性能表現,確保業務的穩定運行。

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

    關注

    55

    文章

    11249

    瀏覽量

    106369
  • 服務器
    +關注

    關注

    13

    文章

    9791

    瀏覽量

    87923
  • nginx
    +關注

    關注

    0

    文章

    171

    瀏覽量

    12590

原文標題:大廠Nginx調優秘籍:QPS提升500%的核心配置技巧

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    KeenTune的算法之心——KeenOpt 調算法框架 | 龍蜥技術

    調算法,本質上是一個漆黑的空間中摸索,而隨著維度的增加,這個漆黑的環境的 volume 急劇增大,摸索的時間成本的增加是不可避免的。對于機器學習模型超參數的
    發表于 10-28 10:36

    如何對電機進行調?調的好處是什么?

    如何自動對電機進行調
    的頭像 發表于 08-22 00:03 ?3455次閱讀

    基于臭氧的Kafka自適應調方法ENLHS

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

    Linux用電功耗調的筆記分享

    整理一些Linux用電功耗調的筆記,分享給小伙伴,關于用電調個人覺得
    的頭像 發表于 06-23 15:19 ?4777次閱讀

    關于JVM的調知識

    最近很多小伙伴跟我說,自己學了不少JVM的調知識,但是實際工作卻不知道何時對JVM進行調
    的頭像 發表于 09-14 14:54 ?1057次閱讀

    KeenOpt調算法框架實現對調對象和配套工具的快速適配

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

    Alluxio線程池結構與吞吐量調

    本文介紹了 Alluxio Master 的線程池結構與每個線程的功能。調過程,利用分析結果調整審計日志的 blocking queue,調整 UFS-SYNC-PREFETCH
    發表于 11-11 11:36 ?781次閱讀

    高性能Nginx HTTPS調-如何為HTTPS提速30%

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

    javajvm調有幾種方法

    JVM調是Java應用程序性能優化過程的重要步驟,它通過針對JVM進行優化來提高應用程序的性能和可靠性。JVM調可以根據具體的場景和需
    的頭像 發表于 12-05 11:11 ?2424次閱讀

    什么場景需要jvm調

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

    jvm調主要是調哪里

    JVM調主要涉及內存管理、垃圾回收、線程管理與鎖優化等方面。下面將詳細介紹每個方面的調技術和策略以及如何進行優化。 內存管理 JVM的內
    的頭像 發表于 12-05 11:37 ?1840次閱讀

    鴻蒙開發實戰:【性能調組件】

    性能調組件包含系統和應用調框架,旨在為開發者提供一套性能調平臺,可以用來分析內存、性能等問
    的頭像 發表于 03-13 15:12 ?844次閱讀
    鴻蒙開發實戰:【性能<b class='flag-5'>調</b><b class='flag-5'>優</b>組件】

    深度解析JVM調實踐應用

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

    xgboost超參數調技巧 xgboost圖像分類的應用

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

    Nginx性能優化終極指南

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