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

So verwenden Sie JSONP in Vue

Inhaltsverzeichnis 1. Einleitung 2. Installation ...

Zusammenfassung der MySQL InnoDB-Sperren

Inhaltsverzeichnis 1. Gemeinsam genutzte und exkl...

Prozessanalyse von reservierten Wortanweisungen in Dockerfile

Inhaltsverzeichnis 1. Was ist Dockerfile? 2. Anal...

Beispiel für den Export und Import von Docker-Containern

Inhaltsverzeichnis Docker-Container exportieren D...

Docker startet Redis und legt das Passwort fest

Redis verwendet das Apline-Image (Alps) von Redis...

Hinweise zur Groß-/Kleinschreibung bei MySQL

Inhaltsverzeichnis Die Groß-/Kleinschreibung von ...

Beispielcode und Methode zum Speichern von Arrays in MySQL

Beim Schreiben gespeicherter Prozeduren werden hä...

Die HTML-Eingabedateisteuerung begrenzt den Typ der hochgeladenen Dateien

Fügen Sie der Webseite ein HTML-Steuerelement für...

Detaillierte Untersuchung der MySQL-Mehrversions-Parallelitätskontrolle MVCC

MVCC MVCC (Multi-Version Concurrency Control) ist...

So löschen Sie den gesamten Inhalt eines Verzeichnisses mit Ansible

Studierende, die Ansible verwenden, wissen, dass ...

Wie implementiert Vue die Kommunikation zwischen Komponenten?

Inhaltsverzeichnis 1. Kommunikation zwischen Vate...