一. 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启动时会加载以下两个目录中的工具文件:

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

被折叠的 条评论
为什么被折叠?



