Problema : Estoy tratando de personalizar la configuración de nginx que genera kong para servir contenido estático, así como mi api como se describe aquí . Puedo hacer que se genere el archivo nginx.conf , pero por mi vida, no puedo hacer que se sirva mi HTML simple.
Lo que he hecho : he creado un docker-compose mínimo que reproduce mi problema aquí . He probado todo tipo de combinaciones aquí y universalmente obtengo el mismo resultado:
{"message":"no Route matched with those values"}
Los únicos registros que puedo ver que son relevantes son:
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" Intenté mover root fuera de la location , usar un alias en lugar de root , pasar un encabezado de host, cambiar el nombre del server_name y mil cosas más que no puedo recordar.
Creo que el problema radica aquí , pero no tengo ni idea en este momento. Creo que este es el problema porque puedo hacer que devuelva texto si cambio el cuerpo a:
location / { return 200 'huh?'; }Cualquier ayuda agregaría algunos años a mi vida.
EDITAR Eliminé todo excepto lo esencial para location / y location /api/ y esto funciona, así que puedo intentar construir desde aquí para encontrar la causa.
EDITAR Parece que este compromiso contiene el cambio de última hora, aunque no me queda claro cuál es el cambio de última hora.
Pude aislar el problema y, en retrospectiva, era bastante obvio. Estas directivas kong deben ir solo dentro del bloque de ubicación para la API, y no para el contenido estático.
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() }Vea el compromiso que solucionó el problema aquí