So legen Sie die Parameter für die Post-Request-Druckeranforderung für Nginx-Protokolle fest

So legen Sie die Parameter für die Post-Request-Druckeranforderung für Nginx-Protokolle fest

【Vorwort】

Die SMS-Funktion unseres Projekts besteht darin, eine Verbindung zu einem Drittanbieter herzustellen. Die ursprüngliche Empfangsbestätigungsanforderung des Drittanbieters war eine Get-Anforderung. Bei der Fehlerbehebung konnten wir die Parameter der Anforderung des anderen Anbieters über das Nginx-Protokoll abrufen. Vor Kurzem haben wir zu einem anderen Drittanbieter gewechselt. Die Bestätigungsanforderung des neuen Drittanbieters war ein Post. Bei der Fehlerbehebung stellten wir fest, dass Nginx die spezifischen Parameter nicht druckte. Daher haben wir einige Informationen konsultiert und Experimente und Online-Anpassungen mit Betrieb und Wartung durchgeführt. Nach der Anpassung können wir die Anforderungsparameter abrufen, was für uns bei der Fehlerbehebung bequemer ist.

[Nginx legt Druckpost-Anforderungsparameter fest]

1. Richten Sie die Nginx-Konfigurationsdatei (nginx.conf) so ein, dass die Post-Request-Parameter gedruckt werden: Fügen Sie „dm“:$request_body zum log_format des http-Moduls hinzu, um chinesische verstümmelte Zeichen zu vermeiden, und fügen Sie escape=json hinzu

 log_format main escape=json '{ "@timestamp": "$time_iso8601", '
            '"remote_addr": "$remote_addr",'
            '"costime": "$request_time",'
            '"Echtzeit": "$upstream_response_time",'
            '"status": $status,'
            '"x_forwarded": "$http_x_forwarded_for",'
            '"referer": "$http_referer",'
            '"Anfrage": "$Anfrage",'
            '"upstr_addr": "$upstream_addr",'
            '"bytes":$body_bytes_sent,'
            '"dm":$Anfragetext,'
            '"Agent": "$http_user_agent" }';

   Zugriffsprotokoll /var/log/nginx/access.log Haupt;

2. Vergleich der Effekte vor und nach der Einstellung

1. JSON-Format zum Senden der Anfrage

{
  "Ergebnisse":[
    {
   "Preis":{
        "PreisProNachricht":0.01,
        "Währung": "aaa"
      },
      "messageId":"ff4804ef-6ab6-4abd-984d-ab3b1387e852",
      "An":"385981178",
      "gesendetAt":"2015-02-12T09:58:20.323+0100",
      "doneAt":"2015-02-12T09:58:20.337+0100",
      "SmsCount":1,
      "Status":{
        "Ich würde": 5,
        "Gruppen-ID": 3,
        "Gruppenname": "ZUGESTELLT",
        "Name": "An Mobiltelefon geliefert",
        "Beschreibung": "Nachricht an Mobiltelefon übermittelt"
      },
      "Fehler":{
        "Gruppen-ID": 0,
        "Gruppenname": "OK",
        "Ich würde":0,
        "Name": "KEIN_FEHLER",
        "Beschreibung":"Kein Fehler",
        "permanent":false
      }
    }
  ]
}

2. Das Ergebnis des Nginx-Ausdrucks vor dem Festlegen der Post-Anforderung druckt die Parameter offensichtlich nicht aus

3. Nach dem Festlegen der Post-Anforderung druckt nginx die Parameter und stellt fest, dass die Parameter gedruckt werden, aber verstümmelte Zeichen enthalten

4. Lösen Sie den verstümmelten Code

(1) Sie müssen escape=json nach log_format main hinzufügen

(2) Die Nginx-Version muss 1.15.1 oder höher sein.

(3) Erfüllen Sie die oben gedruckten Endergebnisse

3. Notwendigkeit der Anzeige von Nginx-Protokollen

1. Umfassender: Es kann den IP-Browser und die Anforderungsparameter des Besuchers sowie andere Informationen umfassender aufzeichnen als das Java-Anforderungsprotokoll.

2. Wenn die Anzahl der Anforderungen groß ist, kann das Java-Programm sie nicht verarbeiten. Zu diesem Zeitpunkt verfügt das Java-Protokoll nicht über redundante Zugriffsanforderungen, nginx jedoch schon, was bei der Fehlerbehebung und Optimierung der Systemleistung hilfreich ist.

【Zusammenfassen】

1. Probleme können durch Protokolle schnell lokalisiert werden;

2. Bei der Fehlerbehebung müssen Sie das Problem umfassend und aus mehreren Dimensionen betrachten.

Dies ist das Ende dieses Artikels zum Festlegen der Post-Request-Parameter für den Nginx-Protokolldruck. Weitere relevante Post-Request-Parameter für den Nginx-Protokolldruck finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Anweisungen zur Nginx-Protokollkonfiguration
  • Detaillierte Schritte zum Aktivieren der Echtzeitanzeige von Zugriffsprotokollen in Nginx
  • Detaillierte Erklärung zum Nginx-Protokollschneiden nach Datum (Schneiden nach Tag)
  • Detaillierte Analyse und Konfiguration von access_log im Nginx-Server
  • Konfigurationsbeispiel für die Protokollierung im JSON-Format in nginx
  • Anforderungs-Antwort-Protokoll zum Nginx-Protokoll hinzufügen (empfohlen)
  • Nginx deaktiviert die Protokollierungskonfiguration von favicon.ico und robots.txt

<<:  Kurze Analyse des MySQL B-Tree-Index

>>:  Beispiel für die Implementierung des Ziehens von Zeilen und Spalten in einer Elementtabelle

Artikel empfehlen

Centos7-Installation und Konfiguration von Mysql5.7

Schritt 1: Holen Sie sich die MySQL YUM-Quelle Ge...

Gründe und Methoden zum Warten auf die Sperre der Tabellenmetadaten in MySQL

Wenn MySQL DDL-Operationen wie „Alter Table“ ausf...

Einige Parameterbeschreibungen von Texteingabefeldern im Webdesign

<br />In Gästebüchern, Foren und anderen Ort...

Allgemeine Probleme mit der Regelpriorität beim Nginx-Standort

Inhaltsverzeichnis 1. Standort / Matching 2. Stan...

Lösung für das Problem der langsamen Docker-Pull-Image-Geschwindigkeit

Derzeit verfügt Docker über einen offiziellen Mir...

So verwenden Sie die Vue-Timeline-Komponente

In diesem Artikelbeispiel wird der spezifische Im...

ReactJs-Grundlagen-Tutorial - Essential Edition

Inhaltsverzeichnis 1. Einführung in ReactJS 2. Ve...

Detaillierte Erklärung der MySQL-Vorkompilierungsfunktion

In diesem Artikel wird die MySQL-Vorkompilierungs...

Detaillierte Erklärung zur Verwendung des MySQL-Datentyps DECIMAL

Der MySQL DECIMAL Datentyp wird zum Speichern exa...

Wie Sie die redundanten Felder der Datenbank sinnvoll nutzen

Privot ist die Zwischentabelle von Viele-zu-viele...

Vue.js implementiert eine einfache Timerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung zum Problem der CSS-Klassennamen

Die folgenden CSS-Klassennamen, die mit einer Zah...