OpenResty | nginx内部发送请求

文章介绍了OpenResty中发送HTTP请求的API以及封装HTTP工具函数的方法,同时讲解了CJSON工具类用于JSON序列化和反序列化的操作。此外,文章详细阐述了基于请求路径的hash负载均衡原理和实现,以提高缓存命中率。


一. http请求的API

关于OpenResty如何安装和编写业务逻辑可以参考这篇文章:点击跳转
nginx提供了内部API用以发送http请求:

local resp = ngx.location.capture("/path",{
   
   
    method = ngx.HTTP_GET,   -- 请求方式
    args = {
   
   a=1,b=2},  -- get方式传参数
    body ="c=3&b=4" -- post传参方式
})

注意:args相当本质上还是利用查询字符串的方式进行参数传递,而body则是将要传递的参数存放在请求体中,两种传参方式最好不要一起使用。
返回的响应内容包括:

  • resp.status:响应状态码
  • resp.header:响应头,是一个table类型的数据
  • resp.body:响应体,就是响应数据

注意:这里的path是路径,并不包含IP和端口。这个请求会被nginx内部的server监听并处理。

但是我们希望这个请求发送到目标服务器,所以还需要在nginx的配置文件中编写一个server来对这个路径做反向代理:

 location /path {
     # 这里是windows电脑的ip和Java服务端口,需要确保windows防火墙处于关闭状态
     proxy_pass http://192.168.150.1:8081; 
 }

原理如图:
请添加图片描述

二. 封装http工具函数

之前我们说过,OpenResty启动时会加载以下两个目录中的工具文件:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值