Welcome! Log In Create A New Profile

Advanced

Re: nginx reverse proxy for grpc

Maxim Dounin
October 23, 2019 08:26AM
Hello!

On Wed, Oct 23, 2019 at 10:48:31AM +0300, Oleg Motienko wrote:

> Кстати, если передавать в grpc metadata "переменную" с подчеркиванием,
> она не проходит. Как я понимаю, это из-за того, что это metadata по
> сути есть http заголовки и символ подчеркивания недопустим ?

Да, примерно.

Строго говоря, символ подчёркивания допустим согласно грамматике
HTTP-заголовков. Однако с ним имеется проблема: в рамках CGI (а
следом - и много где ещё, включая переменные $http_* в nginx'е)
заголовок запроса Foo-Bar передаётся в виде переменной окружения
HTTP_FOO_BAR. И если разрешать символ подчёркивания в именах
заголовков, то заголовок Foo_Bar на уровне CGI-приложения
становится неотличим от Foo-Bar (хотя в HTTP это разные
заголовки). Такое различие в обработке - очевидно, проблема с
точки зрения безопасности. Поэтому по умолчанию nginx такие
заголовки считает недопустимыми.

Если очень надо - заголовки с символом подчёркивания можно
разрешить, для этого есть директива underscores_in_headers:

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

Но это именно что если очень надо. Лучше этого не делать, могут
быть неожиданные последствия.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx reverse proxy for grpc

Oleg Motienko October 22, 2019 11:12AM

Re: nginx reverse proxy for grpc

Maxim Dounin October 22, 2019 11:16AM

Re: nginx reverse proxy for grpc

Oleg Motienko October 23, 2019 03:50AM

Re: nginx reverse proxy for grpc

Maxim Dounin October 23, 2019 08:26AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 74
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready