2012-08-15 16 views
19

Estoy usando dos sistemas (ambos son nginx load balancecer y one act como una copia de seguridad). Quiero agregar y usar algunos encabezados http personalizados. Por favor, dar su sugerenciaAgregar y usar el encabezado (HTTP) en nginx

por ejemplo

upstream upstream0{ 
      #list of upstream servers 
      server backend:80; 
      server backup_load_balancer:777 backup; 
      #healthcheck 
    } 

    server{ 
     listen 80; 
     #Add custom header about the port and protocol (http or https) 
     server_name  _; 
     location/{ 
       proxy_pass "http://upstream0;#" is included since links are not allowed in the post 
     } 

    } 

// sistema de copia de seguridad

server{ 
     listen 777; 
     server_name  _; 
     #doing some other extra stuf 

     #use port and protocol to direct 
} 

Gracias

Respuesta

51

Para agregar un encabezado sólo tiene que añadir el siguiente código al bloque de ubicación en la que desea agregar el encabezado:

location some-location { 
    add_header X-my-header my-header-content;  
} 

Obviamente, reemplace el x-my-header y my-header-content con lo que desea agregar. Y eso es todo lo que hay que hacer.

+0

Gracias. ¿Cómo lo leo en mi otro oyente? – mohan

+2

las variables $ http_HEADER y $ send_http_HEADER permiten acceder al contenido de un encabezado en nginx, ver http://wiki.nginx.org/HttpCoreModule#Variables – cobaco

+0

¿Funciona 'add_header' cuando se usa' proxy_pass'? Esta pregunta parece contradecirla: http://stackoverflow.com/questions/14501047/how-to-add-a-response-header-on-nginx-when-using-proxy-pass –

5

Puede usar encabezados en sentido ascendente (nombrados empezando por $ http_) y encabezados personalizados adicionales. Por ejemplo:

add_header X-Upstream-01 $http_x_upstream_01; 
add_header X-Hdr-01 txt01; 

A continuación, vaya a la consola y hacer la solicitud con el jefe de usuario:

curl -H "X-Upstream-01: HEADER1" -I http://localhost:11443/ 

la respuesta contiene X-HDR-01, propuesto por el servidor y X-Upstream-01, propuesto por cliente:

HTTP/1.1 200 OK 
Server: nginx/1.8.0 
Date: Mon, 30 Nov 2015 23:54:30 GMT 
Content-Type: text/html;charset=UTF-8 
Connection: keep-alive 
X-Hdr-01: txt01 
X-Upstream-01: HEADER1 
Cuestiones relacionadas