init_by_lua_block {
function get_uuid()
local f = assert(io.open("/proc/sys/kernel/random/uuid", "rb"))
local content = f:read("*all")
f:close()
return content:sub(1, -2)
end
이 함수 쓰면 된다. 리눅스에서만 동작하고 맥에선 안 될듯. BSD 계통도 proc을 지원하는지 모르겠다. 초고성능 요구 시스템에서 파일 오픈을 건 바이 건으로 한다는 것은 조금 걸리는데 뭐 proc인데 별 문제 있으랴. 아님 말고요~
init worker에서 파일을 오픈해두고 계속 쓴 다음 worker 닫힐 때만 close 하도록 하면 더 좋을 텐데 nginx lua close 후킹콜을 못 찾았다.