Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug: traffic-split plugin can't proxy virtual upstream that schema is https #8996

Closed
TenYearsIn opened this issue Mar 2, 2023 · 7 comments · Fixed by #9115
Closed

bug: traffic-split plugin can't proxy virtual upstream that schema is https #8996

TenYearsIn opened this issue Mar 2, 2023 · 7 comments · Fixed by #9115
Assignees

Comments

@TenYearsIn
Copy link
Contributor

Current Behavior

i have two upstream using https protocol, when i configure traffice-splite plugin on one route proxying that two upstream. i find i can not get correct response, it tells me that require "Bad Request This combination of host and port requires TLS"

Expected Behavior

i can use this route with traffice-split plugin proxy https upstream

Error Logs

apisix's response is that
Bad Request
This combination of host and port requires TLS

Steps to Reproduce

  1. Run Apisix On Centos7
  2. start two applications that uses tls
  3. create a route curl "http://127.0.0.1:9080/apisix/admin/routes/1234567890" -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"uri":"/health","plugins":{"traffic-split":{"rules":[{"name":"upstream_A","type":"roundrobin","nodes":{"ip:port":10},"timeout":{"connect":15,"send":15,"read":15}}]}},"upstream": {"type": "roundrobin","nodes": {"ip:port": 2}}}'
  4. invoke api curl -X GET http://127.0.0.1:9080/health

Environment

  • Apisix Version(run apisix version): any version
  • Operating system (run uname -a): Linux 3.10.0-957.el7.x86_64 change: added doc of how to load plugin. #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • OpenResty / Nginx version (run openresty -V or nginx -V): nginx version: openresty/1.19.9.1
  • etcd version, if relevant (run curl http://127.0.0.1:9090/v1/server_info): 3.4.0
  • APISIX Dashboard version, if relevant:
  • Plugin runner version, for issues related to plugin runners:
  • LuaRocks version, for installation issues (run luarocks --version):3.4.0
@tokers
Copy link
Contributor

tokers commented Mar 3, 2023

What's your APISIX version? I cannot grep the key error message.

@TenYearsIn
Copy link
Contributor Author

Apisix. version is 2.9 . But I think my issuse description traffic-split plugin can't proxy virtual upstream that schema is https is ambiguous. Actually, When I want to create a route with traffic-split pluggin proxying two back-end applications that protocol is https . I found request has arrived to this two backend applications but the request schema is http. So this issue can description feat: traffic-split plugin can not support upstream that protocl is https

@tokers
Copy link
Contributor

tokers commented Mar 3, 2023

2.9 is too old, and the team does not maintain it. Could you try the latest version to see if this issue exists?

@TenYearsIn
Copy link
Contributor Author

yes, The version 3.0 also has the same issue

@oyiadin
Copy link

oyiadin commented Mar 19, 2023

traffic-split doesn't support specifying scheme of upstream right now

local up_conf = {
name = upstream_info.name,
type = upstream_info.type,
hash_on = upstream_info.hash_on,
pass_host = upstream_info.pass_host,
upstream_host = upstream_info.upstream_host,
key = upstream_info.key,
nodes = new_nodes,
timeout = upstream_info.timeout,
}

I need this feature too ;-)

@TenYearsIn
Copy link
Contributor Author

I have completed this feature, Could you assign it to me @tokers @spacewander

@Ikalinichev
Copy link

Also need this fix. Looks like traffic-split plugin can only send request to http schema.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

4 participants