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
Changwei Hu
9c9be959d3
feature: chash key support more flexible ways ( #1022 )
...
upstream add hash_on, chash key support more flexible ways
routes and services admin api add upstream_conf check
2020-01-10 15:17:17 +08:00
YuanSheng Wang
9e98773fae
change: responsed a better tip when failed to match any route. ( #1013 )
2020-01-03 10:11:37 +08:00
YuanSheng Wang
536f547df8
test: removed temporary data. ( #829 )
2019-11-27 10:05:06 +08:00
YuanSheng Wang
70d3f0b608
bug: fixed bug when no valid upstream node. ( #893 )
2019-11-25 16:46:20 +08:00
罗泽轩
5e85e93eac
change: don't strip square brackets from the IPv6 ( #822 )
...
* change: don't strip square brackets from the IPv6
The OpenResty APIs require the IPv6 literal wrapped inside a square brackets.
Also add tests for IPv6 upstream and update lua-resty-ipmatcher to 0.3.
Fix #816 .
2019-11-11 09:49:22 +08:00
罗泽轩
b67f99b265
chore: fixed typo detected by misspell ( #801 )
2019-11-05 10:58:04 +08:00
Lien
b91d2d36c0
Fix: allow set multiple URI in one route config ( #797 )
...
* route support uris
* fix uris in router with test cases
* remove line has trailing whitespace
* remove line has trailing whitespace
* fix test case
* use new test case for multiple uris
2019-11-04 14:00:52 +08:00
Lien
b119a5c94b
bugfix: support more built-in parameters when set chash balancer ( #775 )
2019-11-03 18:25:51 +08:00
YuanSheng Wang
4ee11806de
travis: supported to run APISIX with Tengine. ( #683 )
2019-11-02 09:05:38 +08:00
YuanSheng Wang
ad376f83f8
change: updated resty-radixtree to v1.5. ( #768 )
...
* feature: supported userdefine lua function in router `radixtree_uri`.
* feature: supported userdefine lua function in router `radixtree_host_uri`.
2019-11-01 09:49:09 +08:00
WenMing
12a2b01b71
license: add ASF header. ( #743 )
2019-10-31 09:27:28 +08:00
YuanSheng Wang
d8b0c2d04c
change: removed router r3. ( #725 )
2019-10-23 12:59:22 +08:00
YuanSheng Wang
d06fbfa13c
change: used lua-resty-jsonschema
instead of lua-rapidjson
. ( #703 )
2019-10-23 12:58:10 +08:00
YuanSheng Wang
6b875cec33
feature(limit-count): supported global limit count with redis server. ( #624 )
2019-10-08 13:15:48 +08:00
Janko
d91be43a4f
change: remove options host
、uri
、schema
、enable_websocket
of upstream object ( #621 )
...
we can rewrite new proxy option by plugin `proxy-rewrite`.
2019-09-27 19:29:59 +08:00
YuanSheng Wang
3f700c5dc1
doc(admin api): route. ( #593 )
...
feature: supported new fields hosts, remote_addrs and vars for router.
fix : #592
2019-09-26 17:47:08 +08:00
YuanSheng Wang
4bb9e6ecb9
test: added new test case about https://github.com/iresty/apisix/pull/586 . ( #587 )
...
* test: added test cases.
2019-09-24 18:26:43 +08:00
YuanSheng Wang
de3c95da21
feature: support consumer bind plugins. ( #544 )
...
* feature: saved consumer plugin information.
* feature: supported to merge plugin with consumer and route.
2019-09-22 06:05:58 +08:00
YuanSheng Wang
894fa584e0
feature: supported to use host name in upstream ( #522 )
...
* feature: supported to config resolver in yaml config file.
* feature: supported domain host for upstream node
2019-09-18 17:41:44 +08:00
YuanSheng Wang
681a42cbed
feature: support upstream nodes with a weight of 0. ( #536 )
...
* test: added test cases.
* doc: updated doc.
current implementation is enough, it supports weight equal 0 now.
2019-09-18 12:00:53 +08:00
Yuansheng
14d5a38fc3
test: renamed base component.
2019-09-10 16:15:59 +08:00
YuanSheng Wang
912685c818
feature: supported to save/delete/change global rule. ( #492 )
...
* feature: supported to load and run global rule.
2019-09-10 15:27:40 +08:00
Yuansheng
4bb40df857
change(test): name style.
2019-09-10 10:07:29 +08:00
YuanSheng Wang
d8d7f018dc
feature: support to load routes from local yaml file. ( #464 )
...
* feature: support to load routes from local yaml file.
2019-09-09 17:42:20 +08:00
YuanSheng Wang
af3454c6ee
change: updated component lua-resty-radixtree
to v0.7 and updated test ( #470 )
...
* change: updated component `lua-resty-radixtree` to v0.7 and updated test
cases.
2019-09-05 17:23:06 +08:00
Yuansheng
9ff1d3fd44
feature: supported to filter route by Nginx variable for router radixtree_uri
.
2019-09-02 15:31:21 +08:00
YuanSheng Wang
ad98a2bfdb
feature: supported to set more upstream options. ( #451 )
...
* feature: supported to set more upstream options.
* feature: supported to enable websocket for upstream.
2019-08-30 10:15:58 +08:00
YuanSheng Wang
1002765831
feature: support to match IPv6 request. ( #341 )
...
* CLI: supported to listen IPv6.
* feature: supported to match route by remote address.
2019-08-24 09:10:11 +08:00
YuanSheng Wang
275cfa8c73
change(router): use radixtree_sni
as default SSL router. ( #419 )
...
* change(router): use `radixtree_sni` as default SSL router.
* change(route): use `radixtree_uri` as default HTTP(S) router.
* luarocks: removed `lua-resty-libr3` component by default.
2019-08-20 22:07:59 +08:00
YuanSheng Wang
560a3115a1
bugfix: avoided to cover the original service configuration. ( #416 )
...
* bugfix: avoided to cover the original service configuration.
2019-08-19 15:26:38 +08:00
YuanSheng Wang
59da5e78e5
bugfix: stop the checker if the config source is changed. ( #406 )
...
* bugfix: stop the checker if the config source is changed.
* test: added new test cases.
2019-08-19 14:02:33 +08:00
YuanSheng Wang
1ef5828090
feature: supported to use router lua-resty-radixtree
. ( #391 )
...
* feature: supported new router `lua-resty-radixtree`.
* change(nginx.conf): sync from CLI.
2019-08-12 09:04:41 +08:00
Yuansheng
1ce988346a
optimize(router): used local cache variable to avoid one lrucache call.
2019-08-04 23:20:55 +08:00
Yuansheng
66ac7ed200
doc(architecture): added new doc about router
.
2019-08-04 23:20:55 +08:00
Yuansheng
3bc0d64b49
feature: supported to match route by host + uri
.
2019-08-04 23:20:55 +08:00
Yuansheng
e4a9299b05
test(healthcheck): only match part error log, it is enough.
2019-08-04 15:06:14 +08:00
Yuansheng
7deeafa356
test: use smaller connection and change to short connection.
2019-08-02 21:51:58 +08:00
YuanSheng Wang
7e36cf5b9e
bugfix: failed to fetch upstream id in balancer
phase. ( #356 )
...
* bugfix: failed to fetch upstream id in `balancer` phase.
* bugfix: cached `route` object maybe not a Lua table.
2019-08-02 16:29:00 +08:00
YuanSheng Wang
b8fd0da486
feature: allow user to define how to create route index. ( #325 )
2019-07-28 19:37:31 +08:00
Yuansheng
3b263fe2ee
test: change the block code to smaller size.
2019-07-25 17:08:29 +08:00
Yuansheng
873192c033
test(route): added new test cases.
2019-07-25 17:08:29 +08:00
Yuansheng
7d5237c3ca
test(healthcheck): ignore the error log which contain process exiting
.
2019-07-25 13:45:49 +08:00
Yuansheng
f44b49105e
test: fixed case under OSX.
2019-07-22 14:13:05 +08:00
YuanSheng Wang
526e0cb70c
feature(balancer): supported to set retries and timeouts, and set upstream node status by passive health check. ( #288 )
...
* feature(balancer): supported to set retries and timeouts, and set
upstream node status by passive health check.
2019-07-22 11:27:30 +08:00
YuanSheng Wang
5e119c4828
luarocks: added new dependency lua-resty-healthcheck
. ( #249 )
...
* luarocks: added new dependencies `lua-resty-healthcheck` and `lua-resty-worker-event`.
* feature(balancer): fetched health node from upstream nodes in balancer phase when enabled
healthcheck.
2019-07-17 23:52:15 +08:00
Yuansheng
1bb135af60
feature: supported for using wildcard to match the SNI of client https
...
request.
2019-06-24 18:49:30 -04:00
Yuansheng
7dbcea8571
feature: supported to manage ssl item by admin API and HTTPS client request.
2019-06-24 18:49:30 -04:00
YuanSheng Wang
ca1f5e7b0d
feature: added remote_addr
attribute to route. ( #142 )
...
* feature: added `remote_addr` attribute to route.
2019-06-21 06:39:47 +08:00
Yuansheng
678e4228a0
feature: supported for using wildcard pattern to match host.
2019-06-20 10:00:07 -04:00
YuanSheng Wang
36338bc95b
feature: merged the configuration between route and service. ( #133 )
...
* feature: merged the configuration between route and service.
2019-06-19 15:51:28 +08:00
YuanSheng Wang
2647bdddcb
test: removed useless option. ( #132 )
2019-06-19 15:48:16 +08:00
YuanSheng Wang
912e8b106d
feature: supported to match host of client request. ( #130 )
2019-06-19 12:41:38 +08:00
YuanSheng Wang
c02d44f8e7
feature: added test cases about round-robin load balance algorithms. ( #123 )
...
* feature: added test cases about round-robin load balance algorithms.
* feature: added test cases about consistent hash algorithms.
2019-06-17 23:17:41 +08:00
Yuansheng
1921ea8ba5
feature: use schema check for service configuration.
...
Fix #111 .
2019-06-17 09:08:16 +08:00
Yuansheng
5a966152ba
test: missing no_shuffle()
in node/sanity.t
test case and added
...
more step information.
2019-06-16 12:33:13 +08:00
YuanSheng Wang
31cfc145bd
test: grep all of the error log and check it. ( #109 )
...
* travis: init the etcd server at first.
* test: grep all of the error log and check it.
2019-06-16 09:36:22 +08:00
YuanSheng Wang
dae069d51a
bugfix: returned 404 response if the service is not existing. ( #107 )
...
* bugfix: returned 404 response if the service is not existing.
2019-06-15 22:34:26 +08:00
YuanSheng Wang
16f5f27c90
feature: used schema to check the upstream configuration in etcd. ( #105 )
...
* feature: used schema to check the upstream configuration in etcd.
* change: used Lua table to avoid concat JSON string by manual for schema.
* optimize: changed a smaller wait time, faster way to know if there has new data coming.
2019-06-15 11:49:58 +08:00
YuanSheng Wang
32110aeba0
feature: returned 502 if there is no any valid upstream. ( #100 )
...
* feature: returned 502 if there is no any valid upstream.
2019-06-15 08:32:51 +08:00
YuanSheng Wang
f560316803
test: check the service config with json schema
after fetched it form etcd. ( #96 )
...
* test: check the service config with `json schema` after fetched it form etcd.
* test: sleep one more seconds waiting for the etcd sync.
2019-06-14 17:08:44 +08:00
YuanSheng Wang
f270c6ff63
feature: used schema to check the etcd data if it is valid. ( #91 )
...
* feature: used schema to check the etcd data if it is valid.
2019-06-14 10:46:42 +08:00