Zum Inhalt

vts: NGINX-Modul für Virtual-Host-Traffic-Status

Installation

Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:

  • RedHat Enterprise Linux 7, 8, 9 und 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 und Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-vts
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-vts

Aktivieren Sie das Modul, indem Sie Folgendes am Anfang von /etc/nginx/nginx.conf hinzufügen:

load_module modules/ngx_http_vhost_traffic_status_module.so;

Dieses Dokument beschreibt nginx-module-vts v0.2.7, veröffentlicht am 08. August 2026.


CI License

Nginx-Modul für Virtual-Host-Traffic-Status

Test

Führen Sie sudo prove -r t aus, nachdem Sie dieses Modul installiert haben. sudo ist erforderlich, da der Test erfordert, dass Nginx auf Port 80 lauscht.

Screenshots

screenshot-vts-0

screenshot-vts-1

Übersicht

http {
    vhost_traffic_status_zone;

    ...

    server {

        ...

        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
}

Beschreibung

Dies ist ein Nginx-Modul, das Zugriff auf Virtual-Host-Statusinformationen bietet. Es enthält den aktuellen Status wie Server, Upstreams und Caches. Dies ähnelt der Live-Aktivitätsüberwachung von nginx plus. Das eingebaute HTML stammt ebenfalls von der Demo-Seite der alten Version.

Zunächst ist die Direktive vhost_traffic_status_zone erforderlich. Wenn dann die Direktive vhost_traffic_status_display gesetzt ist, kann wie folgt darauf zugegriffen werden:

  • /status/format/json
  • Wenn Sie /status/format/json anfordern, wird mit einem JSON-Dokument geantwortet, das die aktuellen Aktivitätsdaten für die Verwendung in Live-Dashboards und Überwachungstools von Drittanbietern enthält.
  • /status/format/html
  • Wenn Sie /status/format/html anfordern, wird mit dem eingebauten Live-Dashboard in HTML geantwortet, das intern /status/format/json anfordert.
  • /status/format/jsonp
  • Wenn Sie /status/format/jsonp anfordern, wird mit einer JSONP-Callback-Funktion geantwortet, die die aktuellen Aktivitätsdaten für die Verwendung in Live-Dashboards und Überwachungstools von Drittanbietern enthält.
  • /status/format/prometheus
  • Wenn Sie /status/format/prometheus anfordern, wird mit einem prometheus-Dokument geantwortet, das die aktuellen Aktivitätsdaten enthält.
  • /status/control
  • Wenn Sie /status/control anfordern, wird mit einem JSON-Dokument geantwortet, nachdem Zonen über eine Abfragezeichenfolge zurückgesetzt oder gelöscht wurden. Siehe Control.

Das JSON-Dokument enthält Folgendes:

{
    "hostName": ...,
    "moduleVersion": ...,
    "nginxVersion": ...,
    "loadMsec": ...,
    "nowMsec": ...,
    "connections": {
        "active":...,
        "reading":...,
        "writing":...,
        "waiting":...,
        "accepted":...,
        "handled":...,
        "requests":...
    },
    "sharedZones": {
        "name":...,
        "maxSize":...,
        "usedSize":...,
        "usedNode":...,
        "freeSize":...
    },
    "serverZones": {
        "...":{
            "requestCounter":...,
            "inBytes":...,
            "outBytes":...,
            "responses":{
                "1xx":...,
                "2xx":...,
                "3xx":...,
                "4xx":...,
                "5xx":...,
                "miss":...,
                "bypass":...,
                "expired":...,
                "stale":...,
                "updating":...,
                "revalidated":...,
                "hit":...,
                "scarce":...
            },
            "requestMsecCounter":...,
            "requestMsec":...,
            "requestMsecs":{
                "times":[...],
                "msecs":[...]
            },
            "requestBuckets":{
                "msecs":[...],
                "counters":[...]
            },
        }
        ...
    },
    "filterZones": {
        "...":{
            "...":{
                "requestCounter":...,
                "inBytes":...,
                "outBytes":...,
                "responses":{
                    "1xx":...,
                    "2xx":...,
                    "3xx":...,
                    "4xx":...,
                    "5xx":...,
                    "miss":...,
                    "bypass":...,
                    "expired":...,
                    "stale":...,
                    "updating":...,
                    "revalidated":...,
                    "hit":...,
                    "scarce":...
                },
                "requestMsecCounter":...,
                "requestMsec":...,
                "requestMsecs":{
                    "times":[...],
                    "msecs":[...]
                },
                "requestBuckets":{
                    "msecs":[...],
                    "counters":[...]
                },
            },
            ...
        },
        ...
    },
    "upstreamZones": {
        "...":[
            {
                "server":...,
                "requestCounter":...,
                "inBytes":...,
                "outBytes":...,
                "responses":{
                    "1xx":...,
                    "2xx":...,
                    "3xx":...,
                    "4xx":...,
                    "5xx":...
                },
                "requestMsecCounter":...,
                "requestMsec":...,
                "requestMsecs":{
                    "times":[...],
                    "msecs":[...]
                },
                "requestBuckets":{
                    "msecs":[...],
                    "counters":[...]
                },
                "responseMsecCounter":...,
                "responseMsec":...,
                "responseMsecs":{
                    "times":[...],
                    "msecs":[...]
                },
                "responseBuckets":{
                    "msecs":[...],
                    "counters":[...]
                },
                "weight":...,
                "maxFails":...,
                "failTimeout":...,
                "backup":...,
                "down":...
            }
            ...
        ],
        ...
    }
    "cacheZones": {
        "...":{
            "maxSize":...,
            "usedSize":...,
            "inBytes":...,
            "outBytes":...,
            "responses":{
                "miss":...,
                "bypass":...,
                "expired":...,
                "stale":...,
                "updating":...,
                "revalidated":...,
                "hit":...,
                "scarce":...
            }
        },
        ...
    }
}
  • main
  • Basisversion, Uptime ((nowMsec - loadMsec)/1000)
  • nowMsec, loadMsec sind Millisekunden.
  • connections
  • Gesamte Verbindungen und Anfragen (wie beim stub_status_module in NGINX)
  • sharedZones
  • Die Shared-Memory-Informationen, die in nginx-module-vts verwendet werden.
  • serverZones
  • Traffic (ein/aus), Anfrage- und Antwortzähler sowie Cache-Trefferquote pro Serverzone
  • Gesamter Traffic (ein/aus) sowie Anfrage- und Antwortzähler (Zonenname ist *) und Trefferquote
  • filterZones
  • Traffic (ein/aus), Anfrage- und Antwortzähler sowie Cache-Trefferquote pro Serverzone, gefiltert durch die vhost_traffic_status_filter_by_set_key-Direktive
  • Gesamter Traffic (ein/aus) sowie Anfrage- und Antwortzähler (Zonenname ist *) und Trefferquote, gefiltert durch die vhost_traffic_status_filter_by_set_key-Direktive
  • upstreamZones
  • Traffic (ein/aus) sowie Anfrage- und Antwortzähler pro Server in jeder Upstream-Gruppe
  • Aktuelle Einstellungen (weight, maxfails, failtimeout...) in nginx.conf
  • cacheZones
  • Traffic (ein/aus) und Größe (Kapazität/verwendet) sowie Trefferquote pro Cache-Zone bei Verwendung der proxy_cache-Direktive.

Die overCounts-Objekte im JSON-Dokument sind hauptsächlich für 32-Bit-Systeme gedacht und werden um 1 erhöht, wenn ihr Wert überläuft. Die Direktive vhost_traffic_status_display_format legt das Standard-Ausgabeformat fest, das eines von json, jsonp, html, prometheus ist. (Standard: json)

Die Verkehrsberechnung erfolgt wie folgt:

  • ServerZones
  • in += angeforderte_bytes
  • out += gesendete_bytes
  • FilterZones
  • in += angeforderte_bytes über den Filter
  • out += gesendete_bytes über den Filter
  • UpstreamZones
  • in += angeforderte_bytes über die ServerZones
  • out += gesendete_bytes über die ServerZones
  • cacheZones
  • in += angeforderte_bytes über die ServerZones
  • out += gesendete_bytes über die ServerZones

Alle Berechnungen erfolgen in der Log-Verarbeitungsphase von Nginx. Interne Weiterleitungen (X-Accel-Redirect oder error_page) werden in den UpstreamZones nicht berechnet.

Hinweise: Dieses Modul verlässt sich auf das Nginx-Logging-System (NGX_HTTP_LOG_PHASE: letzte Phase des Nginx-HTTP), daher kann der Verkehr unter bestimmten Umständen vom tatsächlichen Bandbreitenverkehr abweichen. Websockets und abgebrochene Downloads können zu Ungenauigkeiten führen. Die Funktion des Moduls hängt überhaupt nicht davon ab, ob die access_log-Direktive "on" oder "off" ist. Auch bei "access_log off" funktioniert dieses Modul gut. Bei Verwendung mehrerer Domains wird die erste Domain (links) der server_name-Direktive gesetzt. Wenn Sie das nicht möchten, lesen Sie die vhost_traffic_status_filter_by_host- und vhost_traffic_status_filter_by_set_key-Direktive.

Siehe die folgenden Module für die stream-Verkehrsstatistik: * nginx-module-sts * nginx-module-stream-sts

Berechnungen und Intervalle

Durchschnittswerte

Alle Durchschnittswerte werden derzeit als AMM (Arithmetisches Mittel) über die letzten 64 Werte berechnet.

Steuerung

Es ist möglich, Verkehrszonen über eine Abfragezeichenfolge zurückzusetzen oder zu löschen. Die Anfrage antwortet mit einem JSON-Dokument.

  • URI-Syntax
  • /{status_uri}/control?cmd={befehl}&group={gruppe}&zone={name}
http {

    geoip_country /usr/share/GeoIP/GeoIP.dat;

    vhost_traffic_status_zone;
    vhost_traffic_status_filter_by_set_key $geoip_country_code country::*;

    ...

    server {

        server_name example.org;

        ...

        vhost_traffic_status_filter_by_set_key $geoip_country_code country::$server_name;

        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
}

Wenn es wie oben gesetzt ist, dann ist die Steuer-URI wie example.org/status/control.

Die verfügbaren Anfrageargumente sind wie folgt: * cmd=\<status|reset|delete> * status * Gibt den Status der Verkehrszonen im JSON-Format zurück, wie status/format/json. * reset * Setzt Verkehrszonen zurück, ohne Knoten im gemeinsamen Speicher zu löschen. (= auf 0 initialisieren) * delete * Löscht Verkehrszonen im gemeinsamen Speicher. Bei erneuter Anfrage werden sie neu erstellt. * group=\<server|filter|upstream@alone|upstream@group|cache|*> * server * filter * upstream@alone * upstream@group * cache * * * zone=name * server * name * filter * filter_gruppe@name * upstream@group * upstream_gruppe@name * upstream@alone * @name * cache * name

Status der Verkehrszonen dynamisch abrufen

Dies ähnelt status/format/json, außer dass einzelne Zonen abgerufen werden können.

Alle Zonen abrufen

  • Es ist genau dasselbe wie status/format/json.
  • /status/control?cmd=status&group=*

Gruppen-Zonen abrufen

  • mainZones
  • /status/control?cmd=status&group=server&zone=::main
  • serverZones
  • /status/control?cmd=status&group=server&zone=*
  • filterZones
  • /status/control?cmd=status&group=filter&zone=*
  • upstreamZones
  • /status/control?cmd=status&group=upstream@group&zone=*
  • upstreamZones::nogroups
  • /status/control?cmd=status&group=upstream@alone&zone=*
  • cacheZones
  • /status/control?cmd=status&group=cache&zone=*

Die mainZones-Werte sind die Standard-Statuswerte, einschließlich hostName, moduleVersion, nginxVersion, loadMsec, nowMsec, connections.

Einzelne Zonen abrufen

  • einzelne Zone in serverZones
  • /status/control?cmd=status&group=server&zone=name
  • einzelne Zone in filterZones
  • /status/control?cmd=status&group=filter&zone=filter_gruppe@name
  • einzelne Zone in upstreamZones
  • /status/control?cmd=status&group=upstream@group&zone=upstream_gruppe@name
  • einzelne Zone in upstreamZones::nogroups
  • /status/control?cmd=status&group=upstream@alone&zone=name
  • einzelne Zone in cacheZones
  • /status/control?cmd=status&group=cache&zone=name

Verkehrszonen dynamisch zurücksetzen

Es setzt die Werte der angegebenen Zonen auf 0 zurück.

Alle Zonen zurücksetzen

  • /status/control?cmd=reset&group=*

Gruppen-Zonen zurücksetzen

  • serverZones
  • /status/control?cmd=reset&group=server&zone=*
  • filterZones
  • /status/control?cmd=reset&group=filter&zone=*
  • upstreamZones
  • /status/control?cmd=reset&group=upstream@group&zone=*
  • upstreamZones::nogroups
  • /status/control?cmd=reset&group=upstream@alone&zone=*
  • cacheZones
  • /status/control?cmd=reset&group=cache&zone=*

Einzelne Zonen zurücksetzen

  • einzelne Zone in serverZones
  • /status/control?cmd=reset&group=server&zone=name
  • einzelne Zone in filterZones
  • /status/control?cmd=reset&group=filter&zone=filter_gruppe@name
  • einzelne Zone in upstreamZones
  • /status/control?cmd=reset&group=upstream@group&zone=upstream_gruppe@name
  • einzelne Zone in upstreamZones::nogroups
  • /status/control?cmd=reset&group=upstream@alone&zone=name
  • einzelne Zone in cacheZones
  • /status/control?cmd=reset&group=cache&zone=name

Verkehrszonen dynamisch löschen

Es löscht die angegebenen Zonen im gemeinsamen Speicher.

Alle Zonen löschen

  • /status/control?cmd=delete&group=*

Gruppen-Zonen löschen

  • serverZones
  • /status/control?cmd=delete&group=server&zone=*
  • filterZones
  • /status/control?cmd=delete&group=filter&zone=*
  • upstreamZones
  • /status/control?cmd=delete&group=upstream@group&zone=*
  • upstreamZones::nogroups
  • /status/control?cmd=delete&group=upstream@alone&zone=*
  • cacheZones
  • /status/control?cmd=delete&group=cache&zone=*

Einzelne Zonen löschen

  • einzelne Zone in serverZones
  • /status/control?cmd=delete&group=server&zone=name
  • einzelne Zone in filterZones
  • /status/control?cmd=delete&group=filter&zone=filter_gruppe@name
  • einzelne Zone in upstreamZones
  • /status/control?cmd=delete&group=upstream@group&zone=upstream_gruppe@name
  • einzelne Zone in upstreamZones::nogroups
  • /status/control?cmd=delete&group=upstream@alone&zone=name
  • einzelne Zone in cacheZones
  • /status/control?cmd=delete&group=cache&zone=name

Setzen

Es ist möglich, die Statuswerte in der Nginx-Konfiguration separat mit der vhost_traffic_status_set_by_filter-Direktive abzurufen. Es können fast alle Statuswerte abgerufen werden, und der erhaltene Wert wird in der benutzerdefinierten Variable gespeichert, die das erste Argument ist.

  • Direktiven-Syntax
  • vhost_traffic_status_set_by_filter $variable gruppe/zone/name
http {

    geoip_country /usr/share/GeoIP/GeoIP.dat;

    vhost_traffic_status_zone;
    vhost_traffic_status_filter_by_set_key $geoip_country_code country::*;

    ...
    upstream backend {
        10.10.10.11:80;
        10.10.10.12:80;
    }

    server {

        server_name example.org;

        ...

        vhost_traffic_status_filter_by_set_key $geoip_country_code country::$server_name;

        vhost_traffic_status_set_by_filter $requestCounter server/example.org/requestCounter;
        vhost_traffic_status_set_by_filter $requestCounterKR filter/country::example.org@KR/requestCounter;

        location /backend {
            vhost_traffic_status_set_by_filter $requestCounterB1 upstream@group/[email protected]:80/requestCounter;
            proxy_pass http://backend;
        }
    }
}

Die obigen Einstellungen sind wie folgt:

  • $requestCounter
  • serverZones -> example.org -> requestCounter
  • $requestCounterKR
  • filterZones -> country::example.org -> KR -> requestCounter
  • $requestCounterB1
  • upstreamZones -> backend -> 10.0.10.11:80 -> requestCounter

Bitte lesen Sie die vhost_traffic_status_set_by_filter-Direktive für eine detaillierte Verwendung.

JSON

Die folgenden Statusinformationen werden im JSON-Format bereitgestellt:

Von status verwendetes JSON

/{status_uri}/format/json

/{status_uri}/control?cmd=status&...

  • hostName
  • Hostname.
  • moduleVersion
  • Version des Moduls im Format {version}(|.dev.{commit}).
  • nginxVersion
  • Version des bereitgestellten.
  • loadMsec
  • Geladene Prozesszeit in Millisekunden.
  • nowMsec
  • Aktuelle Zeit in Millisekunden
  • connections
  • active
    • Die aktuelle Anzahl aktiver Client-Verbindungen.
  • reading
    • Die Gesamtzahl der lesenden Client-Verbindungen.
  • writing
    • Die Gesamtzahl der schreibenden Client-Verbindungen.
  • waiting
    • Die Gesamtzahl der wartenden Client-Verbindungen.
  • accepted
    • Die Gesamtzahl der akzeptierten Client-Verbindungen.
  • handled
    • Die Gesamtzahl der bearbeiteten Client-Verbindungen.
  • requests
    • Die Gesamtzahl der angeforderten Client-Verbindungen.
  • sharedZones
  • name
    • Der Name des gemeinsamen Speichers, der in der Konfiguration angegeben ist. (Standard: vhost_traffic_status)
  • maxSize
    • Das Limit für die maximale Größe des gemeinsamen Speichers, das in der Konfiguration angegeben ist.
  • usedSize
    • Die aktuelle Größe des gemeinsamen Speichers.
  • usedNode
    • Die aktuelle Anzahl der Knoten, die im gemeinsamen Speicher verwendet werden. Die ungefähre Größe für einen Knoten kann mit der folgenden Formel ermittelt werden: (usedSize / usedNode)
  • freeSize
    • Der Platz, den der gemeinsame Speicher für weitere Knoten hat. usedSize oben ist die Summe der Größen der Knoten, was nicht das ist, was die Zone ausgegeben hat, da der Slab-Allocator für jeden eine ganze Seite oder einen ganzen Slot ausgibt. Eine Zone nimmt daher keine Knoten mehr an, während usedSize noch unter maxSize liegt, und dies ist der Wert, der dies anzeigt. Ein Knoten ist größer als eine halbe Seite. Wenn eine Seite also 4k groß ist, ist dies der Platz für weitere Knoten; wenn die Seite größer ist, ist es eine Untergrenze, da eine teilweise verwendete Seite immer noch einen Knoten aufnehmen kann.
  • serverZones
  • requestCounter
    • Die Gesamtzahl der von Clients empfangenen Client-Anfragen.
  • inBytes
    • Die Gesamtzahl der von Clients empfangenen Bytes.
  • outBytes
    • Die Gesamtzahl der an Clients gesendeten Bytes.
  • responses
    • 1xx, 2xx, 3xx, 4xx, 5xx
    • Die Anzahl der Antworten mit den Statuscodes 1xx, 2xx, 3xx, 4xx und 5xx.
    • miss
    • Die Anzahl der Cache-Fehlschläge (Cache Miss).
    • bypass
    • Die Anzahl der Cache-Überbrückungen (Cache Bypass).
    • expired
    • Die Anzahl der abgelaufenen Caches (Cache Expired).
    • stale
    • Die Anzahl der veralteten Caches (Cache Stale).
    • updating
    • Die Anzahl der Cache-Aktualisierungen (Cache Updating).
    • revalidated
    • Die Anzahl der Cache-Revalidierungen (Cache Revalidated).
    • hit
    • Die Anzahl der Cache-Treffer (Cache Hit).
    • scarce
    • Die Anzahl der knappen Caches (Cache Scarce).
  • requestMsecCounter
    • Die Anzahl der akkumulierten Anfrageverarbeitungszeiten in Millisekunden.
  • requestMsec
    • Der Durchschnitt der Anfrageverarbeitungszeiten in Millisekunden.
  • requestMsecs
    • times
    • Die Zeiten in Millisekunden bei Anfrageverarbeitungszeiten.
    • msecs
    • Die Anfrageverarbeitungszeiten in Millisekunden.
  • requestBuckets
    • msecs
    • Die Bucket-Werte des Histogramms, das durch die vhost_traffic_status_histogram_buckets-Direktive festgelegt wurde.
    • counters
    • Die kumulativen Werte, da jeder Bucket-Wert größer oder gleich der Anfrageverarbeitungszeit ist.
  • filterZones
  • Es bietet dieselben Felder wie serverZones, außer dass es Gruppennamen enthält.
  • upstreamZones
  • server
    • Eine Adresse des Servers.
  • requestCounter
    • Die Gesamtzahl der an diesen Server weitergeleiteten Client-Verbindungen.
  • inBytes
    • Die Gesamtzahl der von diesem Server empfangenen Bytes.
  • outBytes
    • Die Gesamtzahl der an diesen Server gesendeten Bytes.
  • responses
    • 1xx, 2xx, 3xx, 4xx, 5xx
    • Die Anzahl der Antworten mit den Statuscodes 1xx, 2xx, 3xx, 4xx und 5xx.
  • requestMsecCounter
    • Die Anzahl der akkumulierten Anfrageverarbeitungszeiten einschließlich Upstream in Millisekunden.
  • requestMsec
    • Der Durchschnitt der Anfrageverarbeitungszeiten einschließlich Upstream in Millisekunden.
  • requestMsecs
    • times
    • Die Zeiten in Millisekunden bei Anfrageverarbeitungszeiten.
    • msecs
    • Die Anfrageverarbeitungszeiten einschließlich Upstream in Millisekunden.
  • requestBuckets
    • msecs
    • Die Bucket-Werte des Histogramms, das durch die vhost_traffic_status_histogram_buckets-Direktive festgelegt wurde.
    • counters
    • Die kumulativen Werte, da jeder Bucket-Wert größer oder gleich der Anfrageverarbeitungszeit einschließlich Upstream ist.
  • responseMsecCounter
    • Die Anzahl der akkumulierten reinen Upstream-Antwortverarbeitungszeiten in Millisekunden.
  • responseMsec
    • Der Durchschnitt der reinen Upstream-Antwortverarbeitungszeiten in Millisekunden.
  • responseMsecs
    • times
    • Die Zeiten in Millisekunden bei Anfrageverarbeitungszeiten.
    • msecs
    • Die reinen Upstream-Antwortverarbeitungszeiten in Millisekunden.
  • responseBuckets
    • msecs
    • Die Bucket-Werte des Histogramms, das durch die vhost_traffic_status_histogram_buckets-Direktive festgelegt wurde.
    • counters
    • Die kumulativen Werte, da jeder Bucket-Wert größer oder gleich der reinen Upstream-Antwortverarbeitungszeit ist.
  • weight
    • Aktuelle weight-Einstellung des Servers.
  • maxFails
    • Aktuelle max_fails-Einstellung des Servers.
  • failTimeout
    • Aktuelle fail_timeout-Einstellung des Servers.
  • backup
    • Aktuelle backup-Einstellung des Servers.
  • down
    • Aktuelle down-Einstellung des Servers. Grundsätzlich ist dies nur eine Markierung für den Server-down-Status des ngx_http_upstream_module (z. B. server backend3.example.com down), nicht der tatsächliche Upstream-Serverstatus. Es ändert sich in den tatsächlichen Zustand, wenn Sie die Upstream-Zonen-Direktive aktiviert haben.
  • cacheZones
  • maxSize
    • Das Limit für die maximale Größe des Caches, das in der Konfiguration angegeben ist. Wenn max_size in der proxy_cache_path-Direktive nicht angegeben ist, wird standardmäßig der systemabhängige Wert NGX_MAX_OFF_T_VALUE zugewiesen. Mit anderen Worten, dieser Wert stammt von nginx, nicht von mir angegeben.
  • usedSize
    • Die aktuelle Größe des Caches. Dieser Wert wird wie der obige maxSize-Wert von nginx übernommen.
  • inBytes
    • Die Gesamtzahl der vom Cache empfangenen Bytes.
  • outBytes
    • Die Gesamtzahl der vom Cache gesendeten Bytes.
  • responses
    • miss
    • Die Anzahl der Cache-Fehlschläge (Cache Miss).
    • bypass
    • Die Anzahl der Cache-Überbrückungen (Cache Bypass).
    • expired
    • Die Anzahl der abgelaufenen Caches (Cache Expired).
    • stale
    • Die Anzahl der veralteten Caches (Cache Stale).
    • updating
    • Die Anzahl der Cache-Aktualisierungen (Cache Updating).
    • revalidated
    • Die Anzahl der Cache-Revalidierungen (Cache Revalidated).
    • hit
    • Die Anzahl der Cache-Treffer (Cache Hit).
    • scarce
    • Die Anzahl der knappen Caches (Cache Scarce).

Von control verwendetes JSON

/{status_uri}/control?cmd=reset&...

/{status_uri}/control?cmd=delete&...

  • processingReturn
  • Das Ergebnis von wahr oder falsch.
  • processingCommandString
  • Die angeforderte Befehlzeichenfolge.
  • processingGroupString
  • Die angeforderte Gruppzeichenfolge.
  • processingZoneString
  • Die angeforderte Zonzeichenfolge.
  • processingCounts
  • Die tatsächliche Verarbeitungsanzahl.

Variablen

Die folgenden eingebetteten Variablen werden bereitgestellt:

  • $vts_request_counter
  • Die Gesamtzahl der von Clients empfangenen Client-Anfragen.
  • $vts_in_bytes
  • Die Gesamtzahl der von Clients empfangenen Bytes.
  • $vts_out_bytes
  • Die Gesamtzahl der an Clients gesendeten Bytes.
  • $vts_1xx_counter
  • Die Anzahl der Antworten mit Statuscode 1xx.
  • $vts_2xx_counter
  • Die Anzahl der Antworten mit Statuscode 2xx.
  • $vts_3xx_counter
  • Die Anzahl der Antworten mit Statuscode 3xx.
  • $vts_4xx_counter
  • Die Anzahl der Antworten mit Statuscode 4xx.
  • $vts_5xx_counter
  • Die Anzahl der Antworten mit Statuscode 5xx.
  • $vts_cache_miss_counter
  • Die Anzahl der Cache-Fehlschläge (Cache Miss).
  • $vts_cache_bypass_counter
  • Die Anzahl der Cache-Überbrückungen (Cache Bypass).
  • $vts_cache_expired_counter
  • Die Anzahl der abgelaufenen Caches (Cache Expired).
  • $vts_cache_stale_counter
  • Die Anzahl der veralteten Caches (Cache Stale).
  • $vts_cache_updating_counter
  • Die Anzahl der Cache-Aktualisierungen (Cache Updating).
  • $vts_cache_revalidated_counter
  • Die Anzahl der Cache-Revalidierungen (Cache Revalidated).
  • $vts_cache_hit_counter
  • Die Anzahl der Cache-Treffer (Cache Hit).
  • $vts_cache_scarce_counter
  • Die Anzahl der knappen Caches (Cache Scarce).
  • $vts_request_time_counter
  • Die Anzahl der akkumulierten Anfrageverarbeitungszeiten.
  • $vts_request_time
  • Der Durchschnitt der Anfrageverarbeitungszeiten.

Limit

Es ist möglich, den Gesamtverkehr pro Host mit der Direktive vhost_traffic_status_limit_traffic zu begrenzen. Es ist auch möglich, den gesamten Verkehr mit der Direktive vhost_traffic_status_limit_traffic_by_set_key zu begrenzen. Wenn das Limit überschritten wird, gibt der Server als Antwort auf eine Anfrage den Fehler 503 (Service Temporarily Unavailable) zurück. Der Rückgabecode kann geändert werden.

Verkehr für Server begrenzen

```Nginx http {

vhost_traffic_status_zone;

...

server {

    server_name *.example.org;

    vhost_traffic_status_limit_traffic in:64G;
    vhost_traffic_status_limit_traffic out:1024G;

    ...
}

}