Reescritura de Nginx con sabor a Lua o ciclo de redirección interna

Reescritura de Nginx con sabor a Lua o ciclo de redirección interna

Soy nuevo tanto en nginxcomo en lua. Estoy intentando seguir este tutorial.http://leafo.net/posts/creating_an_image_server.html#installation_requirementspero por mi vida no puedo conseguir lo nginx.confcorrecto.

He revisado otras preguntas similares aestedónde está el problema location, pero no veo qué hay de malo en mi código.

Aquí está el nginx.conf:

error_log stderr notice;
daemon off;

events { }

http {
  include /usr/local/openresty/nginx/conf/mime.types;

  server {
    listen 6789;
    lua_code_cache on;

    location @image_server {
      content_by_lua_file "serve_image.lua";
    }

    location ~ ^/images/(?<size>[^/]+)/(?<path>.*\.(?<ext>[a-z_]*))$ {
      root cache;
      try_files /$path @image_server;
    }

  }
}

Y este es el serve_image.luacódigo

local sig, size, path, ext =

ngx.var.sig, ngx.var.size, ngx.var.path, ngx.var.ext local images_dir = "images/" - donde las imágenes provienen de local cache_dir = "cache/" - donde las imágenes se almacenan en caché

local function return_not_found(msg)
  ngx.status = ngx.HTTP_NOT_FOUND
  ngx.header["Content-type"] = "text/html"
  ngx.say(msg or "not found")
  ngx.exit(0)
end

local source_fname = images_dir .. path
ngx.log(ngx.STDERR, "->>>>  " .. source_fname)

-- make sure the file exists
local file = io.open(source_fname)

if not file then
  ngx.log(ngx.STDERR, "Couldn't find the input file" .. source_fname)
  return_not_found()
end

file:close()

local dest_fname = cache_dir .. "/" .. size .. "/" .. path

-- resize the image
local magick = require("magick")
magick.thumb(source_fname, size, dest_fname)

ngx.exec(ngx.var.request_uri)

Cuando ejecuto el servidor me sale el código 500.

Este es el error en la terminal.

rewrite or internal redirection cycle while redirect to named location "@image_server", client: 127.0.0.1, server: , request: "GET /images/80x80/wow.png HTTP/1.1", host: "localhost:6789"

Espero que un par de ojos más experimentados y frescos puedan señalar lo que estoy haciendo mal. Gracias.

información relacionada