Kong 2.0.2 Обслуживание api и stati c контент - PullRequest
0 голосов
/ 04 апреля 2020

Проблема : Я пытаюсь настроить конфигурацию nginx, которая генерируется Конгом для обслуживания содержимого c, а также моего API , как описано здесь . Я могу получить файл nginx.conf, который будет сгенерирован, но на всю жизнь - я не могу заставить обслуживать мои простые HTML.

Что я сделал : Я создал минимальный docker-compose, который воспроизводит мою проблему здесь . Я перепробовал все виды комбинаций здесь, и я повсеместно получаю один и тот же результат:

{"message":"no Route matched with those values"}

Единственные журналы, которые я вижу, которые имеют отношение:

2020/04/04 06:20:11 [warn] 49#0: *11361 using uninitialized "kong_proxy_mode" variable, client: 127.0.0.1, server: kong, request: "GET /index.html HTTP/1.1", host: "localhost:8000"
2020/04/04 06:20:11 [warn] 49#0: *11361 using uninitialized "ctx_ref" variable, client: 127.0.0.1, server: kong, request: "GET /index.html HTTP/1.1", host: "localhost:8000"
2020/04/04 06:20:11 [warn] 49#0: *11361 [lua] reports.lua:75: log(): [reports] unknown request scheme: http while logging request, client: 127.0.0.1, server: kong, request: "GET /index.html HTTP/1.1", host: "localhost:8000"

Я пытался переместить root из location, используя alias вместо root, передавая заголовок хоста, изменяя server_name и тысячи других вещей, которые я не могу вспомнить.

Я верю проблема лежит здесь но я понятия не имею на данный момент. Я думаю, что это проблема, потому что я могу заставить его возвращать текст, если я изменю тело на:

location / { 
  return 200 'huh?';
}

Любая помощь может добавить несколько лет назад к моей жизни.

РЕДАКТИРОВАТЬ Я удалил все кроме самого необходимого для location / и location /api/, и это работает - так что я могу попытаться создать отсюда, чтобы найти причину.

РЕДАКТИРОВАТЬ Выглядит так, как будто этот коммит содержит критические изменения, хотя мне непонятно, что такое критическое изменение.

1 Ответ

0 голосов
/ 05 апреля 2020

Мне удалось выделить проблему, и задним числом это было совершенно очевидно. Эти директивы kong должны go только внутри блока местоположения для API, а не для содержимого c.

            rewrite_by_lua_block {
                Kong.rewrite()
            }
            access_by_lua_block {
                Kong.access()
            }
            header_filter_by_lua_block {
                Kong.header_filter()
            }
            body_filter_by_lua_block {
                Kong.body_filter()
            }
            log_by_lua_block {
                Kong.log()
            }

См. Фиксацию, которая устранила проблему здесь

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