Lua 기반 Nginx 재작성 또는 내부 리디렉션 주기

Lua 기반 Nginx 재작성 또는 내부 리디렉션 주기

나는 nginx및 둘 다 처음입니다 lua. 이 튜토리얼을 따라하려고 합니다http://leafo.net/posts/creating_an_image_server.html#installation_requirements하지만 내 인생에서 나는 nginx.conf권리를 얻을 수 없습니다.

비슷한 다른 질문을 확인했습니다.이것문제는 어디에 있지만 location내 코드에 어떤 문제가 있는지 알 수 없습니다.

다음은 다음과 같습니다 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;
    }

  }
}

그리고 이것은 serve_image.lua코드 입니다

local sig, size, path, ext =

ngx.var.sig, ngx.var.size, ngx.var.path, ngx.var.ext local Images_dir = "images/" -- 이미지가 로컬에서 오는 곳 캐시_dir = "cache/" -- 이미지가 캐시되는 곳

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)

서버를 실행하면 코드 500이 나타납니다.

터미널 오류입니다

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"

좀 더 경험이 풍부하고 신선한 눈을 가진 사람이 내가 뭘 잘못하고 있는지 지적할 수 있기를 바랍니다. 감사해요.

관련 정보