最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx性能調(diào)優(yōu)與深度監(jiān)控的全攻略

 更新時間:2026年04月09日 08:59:14   作者:枕布響丸辣  
本文介紹了Nginx的高性能編譯安裝、核心參數(shù)調(diào)優(yōu)、靜態(tài)資源緩存、日志切割、Gzip壓縮等調(diào)優(yōu)方案,并介紹了GoAccess實時日志分析和NginxVTS流量監(jiān)控兩大可視化監(jiān)控工具,幫助大家在高并發(fā)場景下穩(wěn)定、高效地運行Nginx服務(wù),需要的朋友可以參考下

前言

在全球互聯(lián)網(wǎng)流量持續(xù)激增的今天,Nginx 憑借輕量、高效、穩(wěn)定的特性,成為 Web 服務(wù)、反向代理、負(fù)載均衡場景中的核心基礎(chǔ)設(shè)施。無論是中小型網(wǎng)站還是大型分布式系統(tǒng),Nginx 的性能表現(xiàn)直接決定用戶訪問體驗、服務(wù)響應(yīng)速度與業(yè)務(wù)連續(xù)性。

對于運維工程師、后端開發(fā)與架構(gòu)師而言,Nginx 性能調(diào)優(yōu)深度監(jiān)控是兩項核心能力:調(diào)優(yōu)用于最大化利用服務(wù)器硬件資源,提升并發(fā)承載能力;監(jiān)控用于實時掌握運行狀態(tài)、快速定位故障、預(yù)測性能瓶頸。

本文基于 Nginx 1.26.3 穩(wěn)定版,從編譯安裝優(yōu)化、核心參數(shù)調(diào)優(yōu)、靜態(tài)資源緩存、日志切割、Gzip 壓縮等維度,完整講解 Nginx 性能調(diào)優(yōu)方案;同時介紹GoAccess 實時日志分析Nginx VTS 流量監(jiān)控兩大可視化監(jiān)控工具,實現(xiàn) Nginx 運行狀態(tài)全維度可觀測,助力大家在高并發(fā)場景下穩(wěn)定、高效運行 Nginx 服務(wù)。

一、Nginx 高性能編譯安裝

Nginx 默認(rèn) yum 安裝的版本功能精簡、性能受限,源碼編譯安裝是開啟高性能、擴(kuò)展模塊的基礎(chǔ)。我們通過定制編譯參數(shù),啟用 SSL、HTTP/2、狀態(tài)監(jiān)控、流量統(tǒng)計等核心功能,為后續(xù)調(diào)優(yōu)與監(jiān)控打好基礎(chǔ)。

1.1 安裝依賴環(huán)境

Nginx 編譯依賴 GCC、PCRE(正則支持)、Zlib(壓縮)、OpenSSL(HTTPS)等開發(fā)包,執(zhí)行以下命令一鍵安裝:

dnf install -y gcc make pcre-devel zlib-devel openssl-devel perl-ExtUtils-MakeMaker git wget tar

1.2 創(chuàng)建專用運行用戶與日志目錄

為安全與權(quán)限隔離,創(chuàng)建無登錄權(quán)限的 nginx 專用用戶 / 組,并建立日志存儲目錄:

# 創(chuàng)建nginx用戶與組
useradd -M -s /sbin/nologin nginx
# 創(chuàng)建日志目錄并授權(quán)
mkdir -p /var/log/nginx
chown -R nginx:nginx /var/log/nginx

1.3 編譯安裝 Nginx(高性能參數(shù))

解壓源碼包,執(zhí)行configure配置編譯參數(shù),啟用生產(chǎn)環(huán)境必備模塊:

# 解壓源碼
tar zxf nginx-1.26.3.tar.gz
cd nginx-1.26.3
# 編譯配置(核心高性能模塊)
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-pcre \
--with-stream
# 編譯并安裝
make && make install

1.4 配置系統(tǒng)服務(wù)(systemd)

將 Nginx 注冊為系統(tǒng)服務(wù),實現(xiàn)開機(jī)自啟、服務(wù)狀態(tài)管理:

  1. 創(chuàng)建服務(wù)文件:
vi /lib/systemd/system/nginx.service
  1. 寫入以下配置:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target
[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
User=root
Group=root
[Install]
WantedBy=multi-user.target
  1. 重載服務(wù)、啟動并開機(jī)自啟:
systemctl daemon-reload
systemctl start nginx
systemctl enable nginx

二、Nginx 核心性能調(diào)優(yōu)參數(shù)

編譯完成后,通過調(diào)整運行用戶、進(jìn)程數(shù)、CPU 親和、連接數(shù)、緩存、壓縮等參數(shù),可將 Nginx 性能提升數(shù)倍,適配高并發(fā)場景。

2.1 修改運行用戶與組

Nginx 默認(rèn)使用nobody用戶,權(quán)限不安全且易出現(xiàn)文件訪問異常。推薦使用專用nginx用戶運行工作進(jìn)程:

vi /usr/local/nginx/conf/nginx.conf
# 首行添加
user nginx nginx;

2.2 進(jìn)程數(shù)與 CPU 親和調(diào)優(yōu)(核心)

Nginx 采用多進(jìn)程模型,主進(jìn)程(master)管理配置,工作進(jìn)程(worker)處理請求。合理配置進(jìn)程數(shù)可充分利用多核 CPU。

2.2.1 配置工作進(jìn)程數(shù)

worker_processes建議設(shè)置為CPU 核心數(shù),高并發(fā)場景可設(shè)為核心數(shù)的 2 倍:

# 查看CPU核心數(shù)
nproc
# 編輯配置
vi /usr/local/nginx/conf/nginx.conf
worker_processes 4;  # 4核CPU示例

2.2.2 綁定 CPU 親和(避免進(jìn)程爭搶)

默認(rèn) Nginx 進(jìn)程可能集中在單個 CPU 核心,導(dǎo)致資源浪費。通過worker_cpu_affinity將進(jìn)程綁定到不同核心:

worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;

參數(shù)說明:4 位二進(jìn)制對應(yīng) 4 核,每一位代表一個核心,1 表示啟用綁定。

2.3 最大連接數(shù)調(diào)優(yōu)

worker_connections定義單個工作進(jìn)程的最大并發(fā)連接數(shù),總并發(fā)數(shù)計算公式:總并發(fā) = worker_processes × worker_connections

配置示例:

events {
    worker_connections 10240;  # 高并發(fā)設(shè)為10240及以上
}

注意:需同步調(diào)整系統(tǒng)最大文件打開數(shù)(ulimit -n),否則會出現(xiàn)too many open files錯誤。

2.4 靜態(tài)資源緩存調(diào)優(yōu)

靜態(tài)資源(圖片、JS、CSS、圖標(biāo))占 Web 流量 70% 以上,開啟緩存可避免重復(fù)請求,大幅提升訪問速度。

location ~\.(gif|jpg|jpeg|png|bmp|ico)$ {
    root html;
    expires 1d;  # 緩存1天,可設(shè)7d、30d
}

配置后執(zhí)行重載:

nginx -t && nginx -s reload 

驗證:瀏覽器查看響應(yīng)頭,出現(xiàn)Cache-Control即緩存生效。

2.5 日志自動切割

Nginx 無原生日志切割功能,長期運行會導(dǎo)致日志文件過大,影響排查與性能。通過Shell 腳本 + 定時任務(wù)實現(xiàn)自動切割。

2.5.1 編寫切割腳本

vi /opt/fenge.sh

寫入以下內(nèi)容:

#!/bin/bash
# 日志切割腳本
d=$(date -d "-1 day" "+%Y%m%d")
logs_path="/var/log/nginx"
pid_path="/usr/local/nginx/logs/nginx.pid"
# 創(chuàng)建目錄
[ -d $logs_path ] || mkdir -p $logs_path
# 移動并重命名日志
mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d
# 重建日志
kill -USR1 $(cat $pid_path)
# 刪除30天前日志
find $logs_path -mtime +30 | xargs rm -rf

2.5.2 授權(quán)并添加定時任務(wù)

# 授權(quán)執(zhí)行權(quán)限
chmod +x /opt/fenge.sh
# 每天凌晨1:30執(zhí)行
crontab -e
30 1 * * * /opt/fenge.sh

2.6 Gzip 壓縮調(diào)優(yōu)

開啟 Gzip 可壓縮文本資源體積 50%-70%,降低帶寬占用、加快加載速度:

http {
    gzip on;
    gzip_min_length 1k;  # 大于1KB才壓縮
    gzip_vary on;
    gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;
}

驗證:

curl -I -H "Accept-Encoding: gzip" 服務(wù)器IP 

響應(yīng)頭出現(xiàn)Content-Encoding: gzip即壓縮生效。

三、Nginx 深度監(jiān)控:GoAccess 實時日志分析

GoAccess 是開源、輕量、實時的 Web 日志分析工具,支持終端 / 瀏覽器可視化,無需復(fù)雜配置即可查看訪問量、帶寬、響應(yīng)時間、狀態(tài)碼等核心指標(biāo)。

3.1 安裝 GoAccess

  1. 安裝依賴:
dnf install -y gcc make ncurses-devel openssl-devel gettext-devel wqy-microhei-fonts
  1. 源碼編譯:
tar -xzvf goaccess-1.7.2.tar.gz
cd goaccess-1.7.2
./configure --enable-utf8 --with-openssl
make && make install

3.2 配置中文環(huán)境

dnf install -y glibc-langpack-zh
localectl set-locale LANG=zh_CN.UTF-8
# 驗證
locale

3.3 生成實時 HTML 監(jiān)控報告

goaccess --log-format=COMBINED --output=/usr/local/nginx/html/report.html --real-time-html /usr/local/nginx/logs/access.log

瀏覽器訪問:http://服務(wù)器IP/report.html,即可查看實時更新的訪問統(tǒng)計、訪客分布、最慢請求等數(shù)據(jù)。

四、Nginx 深度監(jiān)控:VTS 虛擬主機(jī)流量監(jiān)控

Nginx VTS(Virtual Host Traffic Status)是專業(yè)級流量監(jiān)控模塊,支持實時 QPS、帶寬、連接數(shù)、狀態(tài)碼、虛擬主機(jī)流量等指標(biāo),可對接 Prometheus+Grafana 實現(xiàn)企業(yè)級監(jiān)控。

4.1 重新編譯 Nginx 并添加 VTS 模塊

# 解壓Nginx與VTS模塊
tar xzf nginx-1.26.3.tar.gz
unzip nginx-module-vts-master.zip
cd nginx-1.26.3
# 編譯配置(添加VTS模塊)
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--add-module=/root/nginx-module-vts-master
make && make install

4.2 配置 VTS 監(jiān)控

vi /usr/local/nginx/conf/nginx.conf
http {
    vhost_traffic_status_zone;  # 開啟共享內(nèi)存
    server {
        location /vts {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
            access_log off;
        }
    }
}

重載配置:

nginx -t && nginx -s reload 

4.3 訪問 VTS 監(jiān)控頁面

瀏覽器訪問:http://服務(wù)器IP/vts,可查看:

  • 總連接數(shù)、請求數(shù)、帶寬流量
  • 各虛擬主機(jī)請求量、響應(yīng)碼分布
  • 緩存命中率、上游服務(wù)狀態(tài)
  • JSON 格式數(shù)據(jù)(對接監(jiān)控系統(tǒng))

五、調(diào)優(yōu)與監(jiān)控總結(jié)

本文完整覆蓋Nginx 高性能編譯、核心參數(shù)調(diào)優(yōu)、靜態(tài)優(yōu)化、日志管理、兩大可視化監(jiān)控全流程,核心要點總結(jié):

  1. 編譯是基礎(chǔ):啟用 HTTP/2、SSL、狀態(tài)模塊,為高性能與監(jiān)控鋪路;
  2. 進(jìn)程與 CPU 調(diào)優(yōu)worker_processes匹配 CPU 核心,綁定親和性,避免資源浪費;
  3. 連接數(shù)與系統(tǒng)參數(shù):提升單進(jìn)程連接數(shù),同步調(diào)整系統(tǒng)句柄限制;
  4. 靜態(tài)優(yōu)化:緩存 + Gzip 雙管齊下,降低帶寬、提升加載速度;
  5. 日志管理:自動切割避免文件過大,保障服務(wù)穩(wěn)定;
  6. 監(jiān)控全覆蓋:GoAccess 做日志分析,VTS 做流量監(jiān)控,實現(xiàn) Nginx 全維度可觀測。

通過以上方案,Nginx 可輕松支撐萬級并發(fā),滿足電商、直播、API 服務(wù)等高并發(fā)場景需求。建議在測試環(huán)境驗證調(diào)優(yōu)參數(shù)后,再逐步上線生產(chǎn)環(huán)境,結(jié)合業(yè)務(wù)流量持續(xù)優(yōu)化,實現(xiàn)性能與穩(wěn)定性的最佳平衡。

后記

Nginx 的調(diào)優(yōu)沒有固定公式,核心是匹配硬件資源、貼合業(yè)務(wù)場景。本文提供的是通用生產(chǎn)級方案,大家可根據(jù) CPU 核心數(shù)、內(nèi)存、帶寬、業(yè)務(wù)類型(靜態(tài) / 動態(tài))靈活調(diào)整參數(shù)。

以上就是Nginx性能調(diào)優(yōu)與深度監(jiān)控的全攻略的詳細(xì)內(nèi)容,更多關(guān)于Nginx性能調(diào)優(yōu)與監(jiān)控的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 服務(wù)器nginx配置ssl并http重定向到https方式

    服務(wù)器nginx配置ssl并http重定向到https方式

    這篇文章主要介紹了服務(wù)器nginx配置ssl并http重定向到https方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • nginx通過location配置代理的原理和實現(xiàn)方式

    nginx通過location配置代理的原理和實現(xiàn)方式

    這篇文章主要介紹了nginx通過location配置代理的原理和實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • nginx編譯安裝后對nginx進(jìn)行平滑升級的方法

    nginx編譯安裝后對nginx進(jìn)行平滑升級的方法

    nginx編譯安裝后用了一段時間后發(fā)現(xiàn)當(dāng)前版本有漏洞或需要新的功能時就需要對當(dāng)前nginx版本進(jìn)行版本升級,所以這時就需到對nginx的平滑升級,如何進(jìn)行平滑升級,下面就一起來了解一下
    2018-12-12
  • 高性能WEB開發(fā) nginx HTTP服務(wù)器篇

    高性能WEB開發(fā) nginx HTTP服務(wù)器篇

    新產(chǎn)品為了效果,做的比較炫,用了很多的圖片和JS,所以前端的性能是很大的問題,分篇記錄前端性能優(yōu)化的一些小經(jīng)驗。
    2010-05-05
  • keepalived+nginx實現(xiàn)雙服務(wù)器主備方案

    keepalived+nginx實現(xiàn)雙服務(wù)器主備方案

    本文主要介紹了使用keepalived和nginx實現(xiàn)雙服務(wù)器主備方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Nginx服務(wù)啟動和停止實現(xiàn)

    Nginx服務(wù)啟動和停止實現(xiàn)

    使用Nginx的過程中,我們可能總是需要修改nginx配置文件,然后不停地啟動或者停止nginx服務(wù),本文就來介紹一下,感興趣的可以了解一下
    2023-11-11
  • Windows中將Nginx添加為服務(wù)的問題

    Windows中將Nginx添加為服務(wù)的問題

    這篇文章主要介紹了Windows中將Nginx添加為服務(wù)的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Nginx純配置實現(xiàn)日志實時上報的思路與方法

    Nginx純配置實現(xiàn)日志實時上報的思路與方法

    在很多時候我們都需要在頁面上實時查看nginx的日志輸出,所以下面這篇文章主要給大家介紹了關(guān)于Nginx純配置實現(xiàn)日志實時上報的思路與方法,需要的朋友可以參考下
    2021-12-12
  • Nginx設(shè)置靜態(tài)頁面壓縮和緩存過期時間的方法

    Nginx設(shè)置靜態(tài)頁面壓縮和緩存過期時間的方法

    這篇文章主要介紹了Nginx設(shè)置靜態(tài)頁面壓縮和緩存過期時間的方法,也是服務(wù)器架設(shè)后的必備設(shè)置,需要的朋友可以參考下
    2015-07-07
  • Nginx反向代理和負(fù)載均衡的安全加固方案

    Nginx反向代理和負(fù)載均衡的安全加固方案

    這篇文章給大家介紹了Nginx反向代理和負(fù)載均衡的安全加固方案,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2026-03-03

最新評論

江川县| 汾西县| 藁城市| 横山县| 西平县| 汶川县| 白银市| 石台县| 惠来县| 榆树市| 建宁县| 邻水| 夏河县| 苗栗县| 霸州市| 阿城市| 宜宾市| 茂名市| 茌平县| 汝阳县| 定襄县| 南澳县| 凤凰县| 永春县| 二连浩特市| 天气| 玉田县| 临泽县| 中阳县| 晋宁县| 焦作市| 宣武区| 宜春市| 鄂温| 邹城市| 青田县| 澄城县| 福建省| 革吉县| 和顺县| 茂名市|