So entfernen Sie einen Antwort-header in nginx nach Lagerung Ihres Wertes im Falle von proxy_pass

Grundsätzlich, ich habe Probleme, um herauszufinden, einen Weg, um entfernen eine der response-header in nginx im Falle von proxy_pass, nachdem Sie Sie gespeichert in einer Variablen.
proxy_hide_header lässt mich nicht speichern Sie den Wert.

In anderen Worten:

Ich versuche für den Zugriff auf eine custom-Antwort-header, speichern es in eine variable, und es loswerden, damit es nicht weitergegeben werden an den client. Diese variable wird dann verwendet, in den access-logs.
Leider, die folgenden scheint nicht zu funktionieren:

http {

log_format main '$remote_addr $http_host $destination_addr [$time_local]   
"$request" $status';
access_log /opt/logs/access.log main;

server { 
 listen 142.133.151.129:8090 default; 

 ##This is my internal variable for the response header field 
 set $destination_addr "-"; 

 location /{ 
   proxy_pass http://my_upstream_server; 

   #store the response header field
   set $destination_addr $sent_http_x_destination; 

   #now get rid of this response header field
   set $sent_http_x_destination ""; 
  }   
 }
}

Bin ich immer leere Werte für $sent_http_x_destination.

Hier ist der curl request und response:

# curl -Ov http://142.133.151.129:8090/ao3/vod/soccer/worldcup2014/final1

< HTTP/1.1 206 Partial Content
< Server: openresty/1.9.3.1
< Date: Tue, 16 Feb 2016 22:25:32 GMT
< Content-Type: application/octet-stream
< Content-Length: 99990100
< Connection: keep-alive
< X-Destination: 142.133.151.94 

Weiß jemand, wie die Entfernung von "X-Destination" an, nachdem es gespeichert und für den access log? Ich bin immer "$destination_addr" mit einem leeren Wert.

Dank

Ich verwendet proxy_hide_header my-custome-header; und funktionierte wie erwartet. Es entfernt die header aus der Antwort, aber die variable $upstream_http_my_custom_header ist in das Protokoll geschrieben werden.

InformationsquelleAutor developer | 2016-02-18

Schreibe einen Kommentar