Firstsawyou edited a comment on issue #3271: URL: https://github.com/apache/apisix/issues/3271#issuecomment-759583570
> Hi,@htwdjqr > My test is normal,You need to provide more information such as etcd configuration to help me troubleshoot your problem. > > here are my test steps: > > 1. Create a route: > > ```shell > curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' > { > "uris": ["/get"], > "plugins": { > "traffic-split": { > "rules": [{ > "match": [{ > "vars": [ > [ > "http_release", > "==", > "new_release" > ] > ] > }], > "weighted_upstreams": [{ > "upstream": { > "name": "upstream_A", > "nodes": { > "httpbin.org:80": 10 > }, > "type": "roundrobin" > } > }] > }] > } > } > }' > ``` > > 1. Check the configuration of etcd: > > ```shell > $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X GET > {"count":"1","action":"get","node":{"key":"\/apisix\/routes\/1","value":{"priority":0,"id":"1","update_time":1610542902,"plugins":{"traffic-split":{"rules":[{"match":[{"vars":[["http_release","==","new_release"]]}],"weighted_upstreams":[{"upstream":{"nodes":{"httpbin.org:80":10},"type":"roundrobin","hash_on":"vars","pass_host":"pass","name":"upstream_A"},"weight":1}]}]}},"status":1,"uris":["\/get"],"create_time":1610288363}}} > ``` > > 1. Initiate request access routing(match successfully): > > ```shell > $ curl http://127.0.0.1:9080/get -H 'release: new_release' -i > HTTP/1.1 200 OK > Content-Type: application/json > Content-Length: 330 > Connection: keep-alive > Date: Wed, 13 Jan 2021 13:09:13 GMT > Access-Control-Allow-Origin: * > Access-Control-Allow-Credentials: true > Server: APISIX/2.1 > > { > "args": {}, > "headers": { > "Accept": "*/*", > "Host": "127.0.0.1", > "Release": "new_release", > "User-Agent": "curl/7.29.0", > "X-Amzn-Trace-Id": "Root=1-5ffef0f9-1832d58f04dd9f5359b16fcd", > "X-Forwarded-Host": "127.0.0.1" > }, > "origin": "127.0.0.1, 121.41.116.83", > "url": "http://127.0.0.1/get" > } > ``` > > 1. Initiate request access routing(match failed): > > ```shell > $ curl http://127.0.0.1:9080/get -H 'release: old_release' -i > HTTP/1.1 500 Internal Server Error > Date: Wed, 13 Jan 2021 13:14:15 GMT > Content-Type: text/html; charset=utf-8 > Content-Length: 174 > Connection: close > Server: APISIX/2.1 > > <html> > <head><title>500 Internal Server Error</title></head> > <body> > <center><h1>500 Internal Server Error</h1></center> > <hr><center>openresty</center> > </body> > </html> > ``` Update example (add default upstream on route): 1. Create a route: ```shell curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uris": ["/hello"], "plugins": { "traffic-split": { "rules": [{ "match": [{ "vars": [ [ "http_release", "==", "new_release" ] ] }], "weighted_upstreams": [{ "upstream": { "name": "upstream_A", "nodes": { "127.0.0.1:80": 1 }, "type": "roundrobin" } }] }] } }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:81": 1 } } }' ``` 2. Check the configuration of etcd: ```shell $ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X GET {"count":"1","action":"get","node":{"value":{"plugins":{"traffic-split":{"rules":[{"match":[{"vars":[["http_release","==","new_release"]]}],"weighted_upstreams":[{"upstream":{"name":"upstream_A","type":"roundrobin","pass_host":"pass","nodes":{"127.0.0.1:80":1},"hash_on":"vars"},"weight":1}]}]}},"uris":["\/hello"],"create_time":1610288363,"id":"1","update_time":1610556702,"upstream":{"type":"roundrobin","pass_host":"pass","nodes":{"127.0.0.1:81":1},"hash_on":"vars"},"status":1,"priority":0},"key":"\/apisix\/routes\/1"}} ``` 3. Initiate request access routing(match successfully): ```shell curl http://127.0.0.1:9080/hello -H 'release: new_release' -i HTTP/1.1 200 OK Content-Type: application/octet-stream Transfer-Encoding: chunked Connection: keep-alive Date: Wed, 13 Jan 2021 16:55:40 GMT Server: APISIX/2.2 80 service. ``` 4. Initiate request access routing(match failed): ```shell curl http://127.0.0.1:9080/hello -H 'release: old_release' -i HTTP/1.1 200 OK Content-Type: application/octet-stream Transfer-Encoding: chunked Connection: keep-alive Date: Wed, 13 Jan 2021 16:56:29 GMT Server: APISIX/2.2 81 service. ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
