nginx + lua 根据post请求参数做转发


        location / {
             content_by_lua_file "lua/dispatch.lua";
         }


        location @user_profile_api12 {

         content_by_lua_block {
                 ngx.say("xxxx")
         }
         }


        location @user_profile_api3 {

         content_by_lua_block {
                 ngx.say("hahahah")
         }
        }



lua/dispatch.lua

-------------------------------

local request_method = ngx.var.request_method
local arg=nil
if request_method == "GET" then
         arg = ngx.req.get_uri_args()['params']
elseif request_method == "POST" then
         ngx.req.read_body()
         arg = ngx.req.get_post_args()['params']
end

if arg ~= nil then
   local json = require("cjson")
   local jsonObj = json.decode(arg)
   local profile = jsonObj['query']['user_profile']
   local years = jsonObj['query']['year_id']

  if years ~= nil and profile ~= nil and profile[1] == 'bought_record' then
         ngx.exec('@user_profile_api3') 
   elseif profile ~= nil and profile[1] == 'xubao' then
         ngx.exec('@user_profile_api3')
   else 
         ngx.exec('@user_profile_api12')
   end
end


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM