当前位置: 首页 > news >正文

wordpress有多少网站中国建筑集团有限公司是央企吗

wordpress有多少网站,中国建筑集团有限公司是央企吗,空间建网站,重庆市建设施工安全网nginx接收到post请求.请求报文里是一个json字符串,字符串里有个字段id。 根据id不同,转发到不同地址。 如果idaaa,转发到www.aaa.com.test 如果idbbb,转发到www.bbb.com.test 如何配置,请提供一个nginx.conf 要在 Nginx 中根据 POST 请求的 JSON 负载中的…

nginx接收到post请求.请求报文里是一个json字符串,字符串里有个字段id。
根据id不同,转发到不同地址。
如果id=aaa,转发到www.aaa.com.test
如果id=bbb,转发到www.bbb.com.test
如何配置,请提供一个nginx.conf

要在 Nginx 中根据 POST 请求的 JSON 负载中的 id 字段的值进行转发,你可以使用 Nginx 的 ngx_http_lua_module 模块,这个模块允许你在 Nginx 配置中使用 Lua 脚本。下面是一个示例配置,它展示了如何根据 POST 请求的 JSON 负载中的 id 字段的值来转发请求。

首先,确保你的 Nginx 已经安装了 lua-nginx-modulelua-resty-http 库。这些可以通过 OpenResty 来安装,OpenResty 是一个集成了常用模块的 Nginx 发行版。

安装 OpenResty

你可以通过以下命令安装 OpenResty(假设你使用的是基于 Debian 的系统,如 Ubuntu):

sudo apt-get update
sudo apt-get install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring
curl -O https://openresty.org/package/pubkey.gpg
sudo apt-key add pubkey.gpg
sudo apt-get install -y apt-transport-https
echo "deb https://openresty.org/package/debian $(lsb_release -sc) openresty" | sudo tee /etc/apt/sources.list.d/openresty.list
sudo apt-get update
sudo apt-get install -y openresty

Nginx 配置 (nginx.conf)

下面是一个示例的 nginx.conf 配置,它使用 Lua 脚本来解析 POST 请求的 JSON 负载,并根据 id 字段的值转发请求。

http {lua_package_path "/usr/local/openresty/luajit/share/lua/5.1/?.lua;;";lua_shared_dict my_cache 10m;server {listen 80;location / {content_by_lua_block {-- 读取 POST 请求体ngx.req.read_body()local data = ngx.req.get_body_data()if not data thenngx.status = ngx.HTTP_BAD_REQUESTngx.say("No request body found")return ngx.exit(ngx.HTTP_BAD_REQUEST)end-- 解析 JSONlocal cjson = require "cjson.safe"local json_data = cjson.decode(data)if not json_data or not json_data.id thenngx.status = ngx.HTTP_BAD_REQUESTngx.say("Invalid JSON or missing 'id' field")return ngx.exit(ngx.HTTP_BAD_REQUEST)endlocal id = json_data.idlocal target_urlif id == "aaa" thentarget_url = "http://www.aaa.com.test"elseif id == "bbb" thentarget_url = "http://www.bbb.com.test"elsengx.status = ngx.HTTP_NOT_FOUNDngx.say("Unknown 'id' value")return ngx.exit(ngx.HTTP_NOT_FOUND)end-- 创建 HTTP 客户端并转发请求local http = require "resty.http"local httpc = http.new()local res, err = httpc:request_uri(target_url, {method = ngx.var.request_method,body = data,headers = ngx.req.get_headers(),keepalive = false,})if not res thenngx.status = ngx.HTTP_INTERNAL_SERVER_ERRORngx.say("Failed to forward request: ", err)return ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)end-- 设置响应头for k, v in pairs(res.headers) dongx.header[k] = vend-- 发送响应体ngx.status = res.statusngx.print(res.body)-- 关闭 HTTP 客户端httpc:close()}}}
}

解释

  1. lua_package_pathlua_shared_dict:设置 Lua 模块的搜索路径和共享字典。
  2. serverlocation:定义一个服务器块和一个位置块来处理进入的请求。
  3. content_by_lua_block:使用 Lua 脚本处理请求。
  4. ngx.req.read_body():读取 POST 请求体。
  5. cjson.decode(data):解析 JSON 数据。
  6. 条件判断:根据 id 字段的值决定目标 URL。
  7. resty.http:使用 resty.http 模块创建 HTTP 客户端并转发请求。
  8. 设置响应头和状态:将目标服务器的响应头和状态码传递给客户端。
  9. 发送响应体:将目标服务器的响应体发送给客户端。

确保你安装了 lua-cjsonlua-resty-http 库,这通常在使用 OpenResty 时已经包含在内。如果你手动安装 Nginx 和 Lua 模块,则需要确保这些库可用。

重启 Nginx

在修改完 nginx.conf 后,不要忘记重启 Nginx 以应用新的配置:

sudo systemctl restart nginx

这样,Nginx 将能够根据 POST 请求的 JSON 负载中的 id 字段的值来转发请求。

http://www.yayakq.cn/news/249377/

相关文章:

  • 凡科可以做视频网站吗个人网站 免费空间
  • 怎么做自己的网站赚钱h5制作的软件
  • 网站后台登陆地址什么网站做美食最好最专业
  • 怎样给公司做一个网站seo资源网
  • 海南综合网站两学一做电视夜校长沙有什么好玩的游乐场
  • 两学一做知识竞赛网站企业级网站开发技术
  • 做网站 所需资源泉州模板开发建站
  • 网站建设服务外包河北怀来县建设局网站
  • 实验室网站制作大气物流公司网站源码
  • 宠物美容网站建设的目的软文广告案例分析
  • 搜索引擎网站推广如何优化广州公司注册地址可以是住宅吗
  • 免费产品网站建设wordpress设置角色
  • 企业网站设计制作收费推广单页网站免费制作
  • 这个网站最近运转怎么样?安全性怎么样? 另外建设银行的网银能在这里存取款吗?广州网站运营
  • 网站安全设置教程汉中住房和城乡建设部网站
  • 广东深广东深圳网站建设服务网站空间商盗取数据
  • 国内优秀网站网址网站设计的简称
  • 做外汇模拟的网站全球新冠最新数据报告
  • 公司网站源码网络宣传策划方案
  • 河北省住房建设厅官方网站网页设计与网站开发的实践目的
  • m开头的网站开发工具wordpress本地播放器
  • 做微博网站平台推广营销
  • 柳州网站seo优化公司开发公司采购部工作流程
  • chmod wordpress深圳网站seo
  • 北京公司建站模板厂家招代理商免费铺货
  • 建筑设计网站issuu织梦系统网站地图模板下载
  • 山东网站建设平台网站开发可以用两种语言吗
  • 网站建设开发五行属性做家教需要什么哪个网站的会员
  • 数据分析对网站建设的重要性廊坊网络推广优化公司
  • 网站建设 总结小网站怎么建设