Commit Graph

63 Commits

Author SHA1 Message Date
YuanSheng Wang
151d74fd9c
chore: enable plugin server-info by default. (#3170)
Co-authored-by: spacewander <spacewanderlzx@gmail.com>
2021-01-04 20:18:21 +08:00
罗泽轩
357a2efa68
feat: expose schema via control API (#3092)
Close #3022
2020-12-23 16:40:19 +08:00
罗泽轩
fd2db606a9
feat: rewrite handwriting validation with jsonschema (#3021)
Fix #2967. Some plugins can't be rewritten, so I have to keep them.

Signed-off-by: spacewander <spacewanderlzx@gmail.com>
2020-12-18 16:55:23 +08:00
Yuelin Zheng
bdd00e1f55
feat: support ctx.var to get service_name and route_name (#3036)
close #2982
2020-12-17 22:26:25 +08:00
罗泽轩
d16ac7a021
feat: share etcd client (#2932)
Signed-off-by: spacewander <spacewanderlzx@gmail.com>
2020-12-15 20:18:25 +08:00
John Bampton
511f52a856
refactor: remove trailing whitespace (#3040) 2020-12-15 08:56:20 +08:00
罗泽轩
cc9c1bb090
ci: check misspell (#3011)
Fix #3009
2020-12-10 23:05:36 +08:00
罗泽轩
85a84fb191
fix: avoid unnecessary type check and support var in local_conf (#2990)
Also merge bundle of repeated code.

Signed-off-by: spacewander <spacewanderlzx@gmail.com>
2020-12-10 15:48:47 +08:00
罗泽轩
79075000aa
feat(fault-injection): support Nginx variable in abort.body (#2986)
Fix #2827
2020-12-08 13:18:34 +08:00
罗泽轩
97ed426b4e
fix: refresh cached header when we set request header (#2917) 2020-12-07 21:50:31 +08:00
罗泽轩
1b8dca96ac
feat: increase the delay before resync (#2977)
It improves the behavior under #2899.
2020-12-07 20:20:31 +08:00
罗泽轩
44855ec1a7
ci: make it work under OpenResty 1.19 (#2768) 2020-11-30 10:32:35 +08:00
罗泽轩
1c211ff7b1
fix: validate plugin configuration in the DP (#2856)
Fix #2834
2020-11-28 13:29:00 +08:00
罗泽轩
1ad90f7206
chore: sort default plugin list for easier search (#2824) 2020-11-25 14:11:24 +08:00
罗泽轩
1a24c2af39
refactor(consumer): remove id and use username only (#2679)
Close #2656
Close #2653
Close #2651
2020-11-18 17:44:40 +08:00
Yousa
53e2d5387f
fix: remove upstream 'Server' header info. fix #2714 (#2731)
fix #2714
2020-11-18 13:15:31 +08:00
罗泽轩
8983a8dd27
fix(etcd): avoid getting with prefix (#2772)
Fix #2771.
2020-11-17 21:28:55 +08:00
罗泽轩
39879630ae
fix: reload plugin when plugin attribute is cahnged (#2704)
Close #2655
2020-11-13 00:23:30 +08:00
罗泽轩
1ea912d752
fix: use same config-default.yaml for different environments (#2663)
Close #2634.
2020-11-10 19:07:46 +08:00
Alex Zhang
188355494d
feat: hide APISIX version from Server header. (#2639)
Sometimes expose version is dangerous, which can be utilized by
malicious crackers when there are some security bugs in that version.
2020-11-07 00:04:28 +08:00
Alex Zhang
5191374545
feat: support TLS connection with etcd. (#2548)
Support the TLS connection when communicating with etcd cluster. We added a configuration item to custom the certificate verification. Whether to setup TLS connection or not depends on the endpoints' scheme, for instance, when endpoints are:

```
etcd:
  host:
    - "https://127.0.0.1:2379"
    - "https://127.0.0.1:3379"
```

APISIX will originate TLS connection automatically, and the Server Name Indication extention will be set by the endpoint host (`127.0.0.1` in above case). Note by default APISIX will verify the certificate, close the verification in configuration explicitly if you want to bypass it.

```
etcd:
  tls:
    verfiy: false
```
2020-11-03 13:53:39 +08:00
罗泽轩
432c954a74
fix: plugin hot reload should work on node (#2430) 2020-11-03 13:46:24 +08:00
罗泽轩
bf44ed124d
change: make lrucache lock optional (#2575) 2020-11-02 16:47:32 +08:00
Peter Zhu
68cf301ed4
chore: move try_read_attr function into table.lua (#2257) (#2566)
Co-authored-by: YuanSheng Wang <membphis@gmail.com>
2020-10-31 09:13:20 +08:00
Alex Zhang
71dcf367d3
change: read 8bytes from /dev/urandom as the random seed for better randomness (#2437) 2020-10-19 14:53:48 +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
YuanSheng Wang
251625d8ab
bugfix: set random seed for each worker process at init_worker phase, only init phase is not enough. (#2357) 2020-10-09 16:39:49 +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
Firstsawyou
dd5a36e207
feat: support to fetch consumer_name or consumer_id via ctx.var (#2333) 2020-10-04 19:16:29 +08:00
Shuyang Wu
e0ee327c08
bugfix: use etcd:watchcancel to reduce connections in etcdv3 (#2299) 2020-09-28 18:05:47 +08:00
Firstsawyou
b1770d4ca7
feat: support to fetch route_id and service_id via ctx.var (#2326) 2020-09-27 22:29:59 +08:00
罗泽轩
70bd9802c5
bugfix: avoid overwriting Vary header in cors plugin (#2271) 2020-09-27 16:43:09 +08:00
YuanSheng Wang
65db7a4837
bugfix(lrucache): store the original value in a new table, and use ver to store the cached version. (#2321) 2020-09-27 11:38:05 +08:00
Shuyang Wu
4722198548
feature: support etcd v3 by mocking v2 API (#2036) 2020-09-16 10:19:04 +08:00
罗泽轩
37817e4198
chore: add string utility for simplicity and correctness (#2181)
* chore: add string utility for simplicity and correctness

* localize error

* correct the misuse string.find

Co-authored-by: YuanSheng Wang <membphis@gmail.com>
2020-09-10 16:49:20 +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
taotao
6adbf02a06
core: support get_scheme/host/port/http_version in core.request (#1978) 2020-08-04 09:36:05 +08:00
nic-chen
7f64ba810e
change: add more prometheus metrics(etcd modify index) (#1888)
* feat: add more metrics for prometheus

* test: add test cases

* fix: check lint error

* remove hostname metrics. -> can't save string value.

* add more index

* add X-Etcd-Index

* fix lint

* test: add more test cases

* fix: Avoid the index to exceed 1000 by updating other keys that will causing a full reload

* add prev_index

* fix lint

* fix: fetch key first

* fix: test error

* fix update version only when waitdir error is timeout

* test

* fix: sleep more time

* fix: code style

* fix: code style
2020-07-30 15:27:00 +08:00
Shenal Silva
ef89dceda6
feature: support etcd auth (#1769)
Fix #1713 , #1770
2020-06-26 17:25:58 +08:00
YuanSheng Wang
e30a7469bc
test: use longer ttl, avoid the cached item expired. (#1760) 2020-06-23 18:21:08 +08:00
YuanSheng Wang
c351b38086
bugfix(lrucache): when creating cached objects, use resty-lock to avoid repeated creation. (#1486)
* bugfix(lrucache): one common use case for this library is avoid the so-called "dog-pile effect",
    that is, to limit concurrent backend queries for the same key when a cache miss happens.
* bugfix: catch the error messag by pcall, it may fail when generate new validator.
2020-04-22 17:47:16 +08:00
YuanSheng Wang
d7f54ff518
feature: support to print log with specific prefix. (#1284) 2020-03-31 10:25:05 +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
罗泽轩
a4509b6d9e
chore: improve the preallocation in deepcopy method (#1298) 2020-03-19 08:12:33 +08:00
qiujiayu
b210a7b866
feature: support to load different config file by ENV APISIX_PROFILE profile (#1147) 2020-02-28 08:46:42 +08:00
YuanSheng Wang
de16a7e04f
bugfix: updated the dns parse result by TTL. (#1077) 2020-02-19 20:30:34 +08:00
YuanSheng Wang
7bcf15d45b
core: support to set response headers by table. (#1129) 2020-02-18 15:19:12 +08:00
YuanSheng Wang
c881c04368
bugfix: allow write debug log even if the openresty disabled debug model (#1124)
fix https://github.com/apache/incubator-apisix/pull/1121#discussion_r378760095
2020-02-16 11:44:01 +08:00
YuanSheng Wang
01dc41c8a6
bugfix: fetch the current log level when needs. (#885)
* bugfix: fetch the current log level when needs.
2019-11-23 20:40:47 +08:00