Commit Graph

113 Commits

Author SHA1 Message Date
Yuelin Zheng
d7e59113d5
feat: How to distinguish whether the 5xx status code (eg 500) comes from upstream or apisix (#2817)
close #2501
2020-11-27 18:33:02 +08:00
Yousa
53e2d5387f
fix: remove upstream 'Server' header info. fix #2714 (#2731)
fix #2714
2020-11-18 13:15:31 +08:00
Firstsawyou
2ba28ff6a7
chore: sort the request headers output by the _M.uri and _M.old_uri function in t/lib/server.lua (#2696)
fix #2636
2020-11-12 14:37:51 +08:00
dabue
70453aece3
chore(core): enabled websocket in route and service (#2593) 2020-11-10 16:56:38 +08:00
罗泽轩
960077f245
fix(echo): modify response body correctly (#2561)
Fix #2427, #2554
2020-10-29 16:48:53 +08:00
Firstsawyou
d1729c0af3
feat: In dns parse, when the parameter resolvers is empty, the local dns is used as resolvers by default (#2424)
fix #2422
2020-10-17 13:44:53 +08:00
dabue
40577ee1e2
chore: remove the folder 'logs' in root and replace baidu.com with github.com in test cases (#2374)
* rm log

* replace baidu.com to github.com in testcases

* keep folder logs

* remove the folder logs

* update Makefile
2020-10-12 23:49:43 +08:00
L
720d135fd2
fix: Update error message when Route doesn't exist (#2304)
Fixes #2302

Co-authored-by: YuanSheng Wang <membphis@gmail.com>
2020-10-06 11:48:52 +08:00
YuanSheng Wang
50c99a5e3b
bugfix: create etcd object in xpcall, this step may fail (#2312)
* bugfix: create the etcd object in `xpcall`, it may fail, the return values of `etcd.new` should be `res, err`.

fix issue: #2310

1. The old process, if creating etcd fails, etcd data will no longer be synchronized. We need to create the etcd object in xpcall.
2. the return value should be res, err of etcd.new.

* test: old test case is unstable, should delete some checkpoint which is wrong.
2020-10-05 10:22:28 +08:00
YuanSheng Wang
05840ca9e2
test: wait for more time and check the error log, old way is unstable. (#2341) 2020-09-30 17:05:46 +08:00
Wen Ming
13b0968340
Revert "feat(http-logger): support for specified the log formats via admin API (#2294)" (#2307)
This reverts commit 89f89f3004.
2020-09-24 23:50:22 +08:00
YuanSheng Wang
89f89f3004
feat(http-logger): support for specified the log formats via admin API (#2294) 2020-09-24 20:45:50 +08:00
Firstsawyou
a651a29e20
feature: allow empty service object, it does not contain any upstream and plugin (#2259) 2020-09-21 16:52:18 +08:00
YuanSheng Wang
03d818e175
test: before creating and deleting routes in batches, clear all routes first (#2253)
* test: set larger timeout.
2020-09-18 18:43:02 +08:00
YuanSheng Wang
4f900390f9
bugfix: independently check the "disabled" field to avoid schema ve… (#2099)
* bugfix: independently check the "disabled" field to avoid `schema` verification
  with other parameters.
2020-09-17 22:31:02 +08:00
YuanSheng Wang
68b1f9cc57
bugfix: clear all cached object when got delete action, and removing (#2168)
stale boolean data in table `self.values` with a safer way.
2020-09-17 09:30:44 +08:00
YuanSheng Wang
12a0b13145
bugfix: use the route's has_domain if it contains any upstream object. (#2211) 2020-09-15 12:12:09 +08:00
nic-chen
502310bef6
feat: support different modes to pass host to upstream (#2132)
* test: using `httpbin.org` for test cases.
* doc: add doc
* remove golang apt repository and runtime in travis.
* download proto file
Co-authored-by: Yuansheng <membphis@gmail.com>
2020-08-30 22:43:28 +08:00
redynasc
98bb5933d6
feature: implement ewma balancer for upstream node (#2001)
ewma is a different balancing implementation that will generate a weight for every backend IP based on the last server response time, basically it tries to dispatch more requests to the backends that reply faster, supposing that they are less loaded.

fix #1996
2020-08-29 23:14:16 +08:00
YuanSheng Wang
cf882bda1e
feature: divide config.yaml into two files config-custom.yaml & confi… (#2023)
* feature: divide config.yaml into two files config-custom.yaml & config-default.yaml .

fix #1923
2020-08-18 20:18:55 +08:00
YuanSheng Wang
c2a7359b27
update radixtree to version 2.2 . (#2061)
fix #2058

* fixed test
2020-08-16 16:32:29 +08:00
Swayam Raina
6e0da454d1
feature: add apisix-version info to headers in APISIX core (#1961)
related #1877
2020-08-15 07:24:33 +08:00
YuanSheng Wang
6c8a6c3c54
bugfix: when the plug-in configuration that is bound to the consumer is (#2028)
fix #2019
2020-08-12 09:11:40 +08:00
YuanSheng Wang
05f30e1e15
bugfix: support parameter way to match request in route. (#2012)
fix #2008
2020-08-07 08:13:58 +08:00
YuanSheng Wang
3d8150b208
test: old test case is unstable, running fail sometimes. (#1925) 2020-07-31 21:24:31 +08:00
YuanSheng Wang
2ba0231140
bugfix: passive health check seems never provide a healthy report (#1918)
Fix #1640
2020-07-31 19:31:20 +08:00
YuanSheng Wang
fbc3c6818d
feature: allow to set retries=0 for upstream object. (#1919) 2020-07-29 19:21:50 +08:00
Janko
520ef311e3
feature: health check supports custom host port. (#1914) 2020-07-28 23:51:42 +08:00
Janko
a108d2eee1
bugfix: failed to get host in health check configuration. (#1871)
The `host` of health check should be sub-item of `check.active` .

FIX #1869
2020-07-27 13:47:14 +08:00
YuanSheng Wang
47b0ef372e
bugfix: fetch wrong the upstream node when there were multiple upstream node with host (#1835)
Fix #1834
2020-07-17 21:51:51 +08:00
nic-chen
e598e6fa6a
bugfix: wrong counter was used, resulting in only one certificate working fine. (#1818)
Fix #1817
2020-07-10 18:39:08 +08:00
Raisinata
0e517a25d6
feature: using GitHub action for CI (#1793) 2020-07-09 12:15:17 +08:00
YuanSheng Wang
748e33756b
refactory: collect upstream logic and put them in a single file. (#1734)
feature: support dynamic upstream in plugin.

here is a mini  example in `access` phase of plugin:

```lua
    local up_conf = {
        type = "roundrobin",
        nodes = {
            {host = conf.upstream.ip, port = conf.upstream.port, weight = 1},
        }
    }

    local ok, err = upstream.check_schema(up_conf)
    if not ok then
        return 500, err
    end

    local matched_route = ctx.matched_route
    upstream.set(ctx, up_conf.type .. "#route_" .. matched_route.value.id,
                 ctx.conf_version, up_conf, matched_route)
    return
```
2020-06-22 14:21:42 +08:00
YuanSheng Wang
e38d0a9dc8
change: update resty-radixtree to version 1.9 . (#1730) 2020-06-19 12:24:52 +08:00
YuanSheng Wang
2025337077
test: add test case for route with filter_func. (#1683) 2020-06-11 11:03:02 +08:00
YuanSheng Wang
c9a53abbb9
test: updated style. (#1606) 2020-05-22 21:34:58 +08:00
qiujiayu
e7d19ec160
feature: support discovery center (#1440) 2020-05-14 23:20:44 +08:00
YuanSheng Wang
89a07efb51
test: reindex by tools reindex. (#1519) 2020-04-28 18:54:14 +08:00
罗泽轩
972840ec96
fix: skip tombstone mark when iterating the global values (#1517)
Close #1473.
2020-04-28 17:25:55 +08:00
YuanSheng Wang
0f3310562c
bugfix: init clean_handlers when add new item from etcd. (#1412)
fix #1384
2020-04-28 16:01:04 +08:00
nic-chen
a53b4707fb
feat: support saving k8s deployment info to upstream (#1502)
* feat: support save k8s deployment info to upstream
2020-04-27 10:47:17 +08:00
罗泽轩
ca91387a60
test: fix regex usage in some cases (#1504) 2020-04-26 10:43:08 +08:00
YuanSheng Wang
669772f5d5
bugfix: check if the service's upstream node is host. (#1402) 2020-04-12 09:31:58 +08:00
YuanSheng Wang
076ecf3ade
bugfix: should not drop the error msg of dns_parse. (#1398)
fix #573 .
2020-04-06 11:04:09 +08:00
YuanSheng Wang
51684de77b
bugfix: fail to get the http request header by ngx.var. * (#1348)
* bugfix: to get the HTTP request header by `ngx.var.*`, we need to convert
  the name to lower case with dashes replaced by underscores.

more information:

http://nginx.org/en/docs/http/ngx_http_core_module.html#var_http_

* change: the key should be a string object when fetching a value from `ctx.var`.

* bug(make lint): If the code style is bad, do exit with code 1.
2020-03-27 23:13:46 +08:00
qiujiayu
7baa0abd44
feature: if the dns_resolver is not set in the file conf/config.yaml, use the resolver in local DNS. (#1217)
Fix #1164
2020-03-26 09:48:18 +08:00
YuanSheng Wang
8d745c7441
test: wait a longer time. (#1323) 2020-03-23 00:03:51 +08:00
YuanSheng Wang
60b88536fe
bugfix: check the count of upstream valid node. (#1292) 2020-03-19 12:07:43 +08:00
Lien
e6804360d1 feature: supported to enable Websocket in upstream object (#1051) 2020-01-14 14:37:24 +08:00
YuanSheng Wang
ea7e783fca test: style, reformatted by reindex tools. (#1045) 2020-01-14 09:51:05 +08:00