私はluaでnginxを使用しています。私のESクラスタにアクセスするには、私はluaコードで設定しています。私は私が間違っている場合誰もLUAコードがどのように機能するか説明できますか?
-- get URL
local uri = ngx.var.uri
-- get method
local method = ngx.req.get_method()
local allowed = false
for path, methods in pairs(restrictions[role]) do
-- path matched rules?
local p = string.match(uri, path)
-- method matched rules?
local m = nil
for _, _method in pairs(methods) do
m = m and m or string.match(method, _method)
end
if p and m then
allowed = true
break
end
end
if not allowed then
return write403Message()
end
が続いURL: http://localhost/_GET
、method:GET
、path:/_GET
local p = string.match(uri, path) -->Then p variable has value GET(i.e p=GET)
が私を修正することさせる。..コードがどのように動作するか知りたいですか?
for _, _method in pairs(methods) do
m = m and m or string.match(method, _method)
end
上記のスニペットは何を行いますか?