Пользовательская конфигурация Nginx из Kong, должна отключить временный файл прокси, который блокирует загрузку 1GB - PullRequest
0 голосов
/ 30 мая 2018

Попытка настроить Nginx из Kong, потому что в конфигурации nginx по умолчанию есть ограничение временного файла прокси, которое блокирует загрузку 1 ГБ (или больше).Сложность состоит в том, что Kong работает в док-контейнере, поэтому мы каждый раз начинаем работать с холодом.

Мы используем Kong в качестве обратного прокси-сервера, он предоставляет службу https и перенаправляет запросы в открытом виде на множество микро-сервисов, чтоработает отлично.Мой вопрос похож на этот: NgInx в качестве обратного прокси с Kong

Так или иначе эта страница научила нас добавлять параметр конфигурации Nginx, который запрещает использование временного файла: https://www.scalescale.com/tips/nginx/optimizing-nginx-for-serving-files-bigger-than-1gb/

proxy_max_temp_file_size 0;

Итак, мы пытаемся выяснить, как предоставить эту конфигурацию Nginx через Kong.На этой странице документа в Kong предлагается использовать пользовательский шаблон конфигурации: https://getkong.org/docs/0.13.x/configuration/

Следуя этим инструкциям, мы подготовили файл шаблона и вызвали kong следующим образом:

kong start -c kong.conf --nginx-conf custom_nginx.template

Но в начале мыне видно, что пользовательские настройки, которые мы помещаем в шаблон, распространяются в файл конфигурации nginx.Кажется, Kong создает файлы конфигурации Nginx при каждом запуске.Ответ прямо перед нами ??Нужно ли изменять файлы Kong LUA?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 17 августа 2018

Позднее обновление.Решение @ esperluette, вероятно, работает.Взлом, который мы установили, состоит из следующих строк, добавленных в CMD запуска Docker в файле конфигурации docker-compose.Это настраивает шаблон по умолчанию Nginx внутри образа докера при создании контейнера:

 sed -i -- 's/\ \ \ \ proxy_max_temp_file_size 0;//' /usr/local/share/lua/5.1/kong/templates/nginx_kong.lua
 sed -i -- '/server {/a\ \ \ \ proxy_max_temp_file_size 0;' /usr/local/share/lua/5.1/kong/templates/nginx_kong.lua

Не очень.

0 голосов
/ 17 августа 2018

это своего рода тупик ... вот как я заставил его работать:

В вашем Dockerfile добавьте строку, чтобы скопировать ваш собственный шаблон в ваше изображение:

COPY ./data/nginx-custom.template /usr/local/kong/nginx-custom.template

И COPY в новом файле docker-entrypoint.sh

COPY ./docker-entrypoint.sh /docker-entrypoint.sh

И этот CMD:

CMD ["/usr/local/openresty/nginx/sbin/nginx", "-c", "/usr/local/kong/nginx.conf", "-p", "/usr/local/kong/"]

файл docker-entrypoint.sh должен выглядеть следующим образом:

#!/bin/sh
set -e

# Disabling nginx daemon mode
export KONG_NGINX_DAEMON="off"

# Setting default prefix (override any existing variable)

export KONG_PREFIX="/usr/local/kong"

# Prepare Kong prefix
if [ "$1" = "/usr/local/openresty/nginx/sbin/nginx" ]; then
    kong prepare -p "/usr/local/kong" --nginx-conf "/usr/local/kong/nginx-custom.template"

fi

exec "$@"

, команда kong prepare создает файл конфигурации из вашего пользовательского шаблона, а затем CMD перезапускает nginx с вашей конфигурацией.

Я чувствую, что должен быть способ перезагрузки, специфичный для Конга, но kong reload не делает того, чего я ожидаю ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...