【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:
|
<<: Kurze Analyse des MySQL B-Tree-Index
>>: Beispiel für die Implementierung des Ziehens von Zeilen und Spalten in einer Elementtabelle
Schritt 1: Holen Sie sich die MySQL YUM-Quelle Ge...
Wenn MySQL DDL-Operationen wie „Alter Table“ ausf...
<br />In Gästebüchern, Foren und anderen Ort...
Inhaltsverzeichnis 1. Standort / Matching 2. Stan...
Derzeit verfügt Docker über einen offiziellen Mir...
In diesem Artikelbeispiel wird der spezifische Im...
Inhaltsverzeichnis 1. Einführung in ReactJS 2. Ve...
Beim Erstellen von Webseiten verwenden wir häufig ...
glibc ist die von GNU veröffentlichte libc-Biblio...
In diesem Artikel wird die MySQL-Vorkompilierungs...
Der MySQL DECIMAL Datentyp wird zum Speichern exa...
Privot ist die Zwischentabelle von Viele-zu-viele...
Dimensionsreduzierung eines zweidimensionalen Arr...
In diesem Artikelbeispiel wird der spezifische Co...
Die folgenden CSS-Klassennamen, die mit einer Zah...