• 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

  • 相关阅读:
    oracle RAC 更换IP
    12C oracle 12.1.0.2版本打补丁
    node name配置错误,导致grid日志在报警
    input_subsys 输入子系统框架分析
    www.bing.com
    getopt函数使用说明
    FreeType 矢量字体 测试移植(1)
    字符的编码方式
    在开发板上显示字符和中文
    块设备驱动程序的框架
  • 原文地址:https://www.cnblogs.com/maoxiangyi/p/11611383.html
Copyright © 2020-2023  润新知