zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    BigPipe
    HDFS Scribe Integration 【转】
    C++ | class size
    Leetcode | Container With Most Water
    Leetcode | Sqrt(x)
    Network | sk_buff
    JVM, JRE 和JDK
    facebook面试题【转】
    ML | SVM
    ML| EM
  • 原文地址:https://www.cnblogs.com/maoxiangyi/p/11611383.html
Copyright © 2011-2022 走看看