nginx下:
location /proxy{ default_type 'text/plain'; lua_code_cache off; set $appid '';//從lua里重寫 set_by_lua_file $url '/home/cq/share/xyx/nginx_example/nginx_server/lua/proxy.lua'; #echo "url = $url";//從lua里賦值得到的url proxy_pass $url; }
lua下:
local a = ngx.var.arg_a; local b = ngx.var.arg_b; local c = ngx.var.arg_c; ngx.header.content_type="text/plain"; ngx.var.appid = a;//寫入到外部參數里 local uri = "https://api.weixin.qq.com/sns/jscode2session?appid="..a.."&secret="..b.."&js_code="..c.."&grant_type=authorization_code"; return uri;
反過來,在lua中獲取nginx的變量
http { include mime.types; default_type application/octet-stream; #設定寫入日志的內容,這里我為了看是否可以獲取到headers中的Access-Token,這里只給日志中寫入這一個值。 log_format main "$http_access_token"; #設定日志的保存路徑和日志模板,這里看不懂的話,看一看nginx日志的知識。 access_log logs/access.log main; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location /test { #content_by_lua_block表示{}內的代碼,全部是lua代碼 content_by_lua_block { #用ngx.say輸出ngx.var.http_access_token ngx.say("前端傳過來的headers中的Access-Token的值是:", ngx.var.http_access_token) } } } }