ti-enxame.com

Como obter cabeçalhos HTTP não padrão no nginx?

Eu tenho uma pergunta muito simples para os especialistas em nginx por aí. Isso é possivelmente um bug.

No nginx 1.0.5, considerando o seguinte nginx.conf:

server {
    server_name myserver;

    location / {
        uwsgi_pass 127.0.0.1:5001;
        uwsgi_param HTTP_MY_CUSTOM_HEADER $http_my_custom_header;
        include uwsgi_params;       
    }
}

Por que isso funciona como esperado ...

$ curl -H "My-Custom-Header: Yes" http://myserver/

... mas isso não acontece.

$ curl -H "MY_CUSTOM_HEADER: Yes" http://myserver/

No último caso, o parâmetro é passado para meu aplicativo uwsgi, mas é apenas uma string vazia. Eu sei que cabeçalhos HTTP não diferenciam maiúsculas de minúsculas, mas o comportamento do nginx é inesperado quando o cabeçalho não segue o formato usual (entre maiúsculas e minúsculas, sublinhados em vez de traços).

Alguém teve necessidade semelhante de capturar cabeçalhos personalizados? Algum exemplo do nginx.conf?

25
hcalves

Deixa pra lá, descobri que há uma configuração para isso:

http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers

33
hcalves