nginx reverse proxy for grpc
Maxim Dounin
mdounin на mdounin.ru
Ср Окт 23 12:25:01 UTC 2019
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