I'm currently passing some new variables into my lua file, it seems like these new variables are nil
when I log them out and I removed my old variable called saveFileRootPath
but the old variable still can be logged.
Here is the a part of my nginx conf:
location /fileupload {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,fileheader';
#
# Tell client that this pre-flight info is valid for 20 days
#
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,fileheader';
add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,fileheader';
add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
}
default_type text/html;
set $fileSaveListingPath "C:\\Services\\openresty\\html_ecomm\\files\\listing";
set $fileSaveDetailPath "C:\\Services\\openresty\\html_ecomm\\files\\detail";
set $fileSaveZoomPath "C:\\Services\\openresty\\html_ecomm\\files\\zoom";
content_by_lua_file lua/fileupload.lua;
}
Added 3 new variables fileSaveListingPath
, fileSaveDetailPath
& fileSaveZoomPath
which are logged as nil
.
Removed the old variable fileSaveRootPath
but still can be logged.
I feel like maybe theres a cache? Cache is turned off, afaik.
Here is the upper part of my lua file:
local http = require "resty.http"
local upload = require "resty.upload"
local cjson = require "cjson"
local saveRootPath = ngx.var.fileSaveRootPath
ngx.log(ngx.ERR, "TEST: "..ngx.var.fileSaveRootPath )
local chunk_size = 4096
local form, err = upload:new(chunk_size)
if not form then
ngx.log(ngx.ERR, "failed to new upload: ", err)
ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)
end
form:set_timeout(1000)
function file_exists(name)
local f=io.open(name,"r")
if f~=nil then io.close(f) return true else return false end
end
As you can see from the code, ngx.var.fileSaveRootPath
I tried to log it and it still can be logged for some reason. This is from server side btw, so I don't want to simply restart the entire server.
PS:
nginx -s reload
didn't work for me.
Some error logs:
2018/03/12 11:42:45 [info] 10660#10372: *4506 client closed connection while waiting for request, client: 124.13.241.136, server: 0.0.0.0:16001
2018/03/12 11:44:40 [error] 10660#10372: *4508 lua entry thread aborted: runtime error: ./lua/fileupload.lua:9: attempt to concatenate field 'fileSaveListingPath' (a nil value)
stack traceback:
coroutine 0:
./lua/fileupload.lua: in function <./lua/fileupload.lua:1>, client: 124.13.241.136, server: db.hkltd.com, request: "POST /fileupload/ HTTP/1.1", host: "xxx.com:16003", referrer: "http://localhost:3000/catalogmanagement/8868"
2018/03/12 11:45:43 [info] 10660#10372: *4514 client closed connection while waiting for request, client: 124.13.241.136, server: 0.0.0.0:16003
2018/03/12 11:58:16 [error] 10660#10372: *4516 lua entry thread aborted: runtime error: ./lua/fileupload.lua:9: attempt to concatenate field 'fileSaveListingPath' (a nil value)
stack traceback:
coroutine 0:
./lua/fileupload.lua: in function <./lua/fileupload.lua:1>, client: 124.13.241.136, server: xxx.com, request: "POST /fileupload/ HTTP/1.1", host: "xxx:16003", referrer: "xxx.com:16003/catalogmanagement/8868"
Found the answer here.
This part: The immediate consequence is that you can't use custom variables in an http block.
Seems like I tried to set my own custom variables but you can't actually do that in nginx conf file afaik.
My solution was to just set my locations in the lua file and things were fine.
PS:
nginx -s reload
works as it should. I added a couple of server entries and the reload worked fine.