微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

两个上游,一个http,另一个https

如何解决两个上游,一个http,另一个https

大家好! 设置openresty时遇到一个问题,请帮忙。 我所拥有的:openresty + lua。 Openresty配置:

upstream a {
   server 1.1.8.1:4707;
}

upstream c {
   server 1.1.8.1:4707;
}
server {
location / {
   proxy_set_header X-Forwarded-Host $host;
   proxy_set_header X-Forwarded-Server $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Url-Scheme $scheme;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header Host $http_host;
   proxy_redirect off;
   proxy_ssl_verify off;
   if ($request_method = POST ) {
   set $upstream '';
   access_by_lua '
   ngx.req.read_body()
   local  match0 = ngx.re.match(ngx.var.request_body,"aaa.*")
   local  match1 = ngx.re.match(ngx.var.request_body,"bbb.*")
   if match0 then
      ngx.var.upstream = "a"
   else
      ngx.var.upstream = "c"
   end
   ';
   proxy_pass http://$upstream;
   }
}
}

目标:根据传递的请求方法将请求分发到上游。请求以json-rpc格式发送。 问题:我有两个上游。一个上游可以通过http协议使用,另一个可以通过https使用,而我没有遇到的问题如下,一次只有1个上游可以工作。 即使您创建单独的类似配置,也只有1个可用,并且1个将可用。 如果有人遇到,请帮助。 如何指定可通过不同协议使用的多个上游?还是我没有正确注册配置? 即使在openresty设置中指定的指令“ proxy_ssl_verify off”也无济于事 预先感谢。

解决方法

https://stackoverflow.com/a/64331014/2060502

处查看我的答案

您可以为2个内部位置配置不同的上游和proxy_ *矫正,并通过ngx.exec() Lua API进行内部重定向,最好在rewrite_by_lua_block上下文中使用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。