码迷,mamicode.com
首页 > 其他好文 > 详细

nginx+lua (二)请求分发

时间:2017-10-08 00:13:55      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:ash   pat   path   code   efault   文件   请求   bsp   rod   

比如对产品productId=143这个请求分发

现编写lua脚本

distrib_product.lua

 

local uri_args = ngx.req.get_uri_args()
local productId = uri_args["productId"]
--获取链接地址 和 productId参数
local hosts = {"172.16.95.145","172.16.95.146","172.16.95.147"}
local hash = ngx.crc32_long(productId)
local hosts_cnt = #hosts
local index = (hash % hosts_cnt) + 1
--分发的主机地址 对参数取模
backend = "http://"..hosts[index]

local method = uri_args["method"]
local requestBody = "/"..method.."?productId="..productId

local http = require("resty.http")
local httpc = http.new()

local resp,err = httpc:request_uri(backend,{
method = "GET",
path = requestBody
})

if not resp then
ngx.say("requst err:",err)
return
end

ngx.say(resp.body)
httpc:close()

新建配置文件

distrib.conf 

server {
  listen 80;
  server_name _;

  location /dis {
    default_type ‘text/html‘;
    #lua_code_cache off;
    content_by_lua_file /usr/distrib_product/lua/distrib_product.lua;
  }
}

 

在 ngix.conf 中 include         /usr/distrib_product/distrib.conf;

 

nginx+lua (二)请求分发

标签:ash   pat   path   code   efault   文件   请求   bsp   rod   

原文地址:http://www.cnblogs.com/qingducx/p/7636230.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!