Ich möchte nginx so konfigurieren, dass es die HTTP-Header analysiert und neue geparste Strings zu Zugriffsprotokollen hinzufügt. Hier ist das spezifische Szenario, das ich brauche:HTTP-Header analysieren und bearbeiten und dem Zugriffsprotokoll hinzufügen Nginx
Es gibt X-Forwarded-For Header in eingehenden Anfragen, die mehrere IP enthält (Clients IP + einige Proxy-Server-IPs). Hier
X-Forwarded-For = "1.2.3.4, 5.6.7.8"
ist log_format Konfiguration in meinem nginx:
log_format main '{"timestamp":"$time_iso8601",'
'"clientIp":"$http_x_forwarded_for",'
'"conSerial":"$connection",'
'"agent":"$http_user_agent"}';
Was ich hier will, ist X-Forwarded-For-Header und extrahieren Proxy-Server die IP-und fügen Sie sie in Protokollformat mit einem sepearate Tag analysieren wie dies:
log_format main '{"timestamp":"$time_iso8601",'
'"clientIp":"$http_x_forwarded_for",'
'"proxy": "5.6.7.8",'
'"conSerial":"$connection",'
'"agent":"$http_user_agent"}';
Beachten Sie, dass 1.2.3.4 Clients echte IP ist und 5.6.7.8 ist Proxy-Server-IP.
Vielen Dank im Voraus, jede Hilfe wird geschätzt.
Warum nicht nur ganze Header protokollieren? –