Как побороть 431-ю ошибку в nuxt-приложении?
Столкнулся со следующей проблемой: разрабатываем с командой интернет-магазин, запустили приложение в прод; маркетологи запускают всякие рекламные кампании и льют трафик на приложение. Все эти рекламные сервисы подсовывают дикие utm-метки в query-параметры и сетят хреналион кук. Наше приложение, разумеется, стоит за nginx, и на nginx подняли лимиты для заголовков до конских размеров, это есть. Но сам нодовский сервак имеет по умолчанию ограничения на заголовки в 8КБ (16КБ, зависит от версии ноды). И приложение отваливает с 431-й ошибкой. Сначала я грешил на nging. А потом на локалке воспроизвел ошибку нагенерив несколько сотен кук. Думал еще может PM2 хрень какую-то делает, но нет, это нода, сомнений нет. И теперь вопрос встал ребром: писать ли свой сервер нодовский под nuxt с билдером и гибко настраивать через него все или же есть какой-то вариант этого избежать и средствами nuxt пофиксить проблему? Всегда же лучше меньше кода, чем больше, так как это все нам еще поддерживать придется.)
И еще: ситуация слегка осложняется тем, что мы используем связку nuxt + typescript. То есть какие-то классические решения на express не заходят.
Знаю, что в ноде есть консольный параметр --max-http-header-size, но просто так им, как понимаю, с nuxt не воспользоваться. Нужно именно запускать что-то вроде этого:
node --max-http-header-size=1500 server
Вообщем, какой-то ступор пока что. Буду признателен любым подсказкам и помощи в данном вопросе!
Ответы (1 шт):
короче, решение просто, как пробка, но до него еще нужно дойти)
NODE_OPTIONS='--max-http-header-size=<нужный максимум в байтах>'
любой параметр для ноды можно прокинуть через NODE_OPTIONS, подробнее тут (там полный список доступных консольных параметров) - https://nodejs.org/api/cli.html#cli_node_options_options