Commit Graph

175 Commits

Author SHA1 Message Date
罗泽轩
f7b5f2b7ec
feat: allow customizing worker_processes (#2017)
* feat: allow customizing worker_processes

Close #2016
2020-08-07 17:25:26 +08:00
YuanSheng Wang
d32b5cf361
perf: no longer generate unnecessary nginx conf for better performance. (#1968)
* perf: no longer generate unnecessary nginx conf for better performance.
* benchmark: sync nginx.conf for fake-apisix.

> Is this PR backward compatible?

Disable two plugins by default(proxy-cache, proxy-mirror), if the user wants to enable them, need to modify the conf/config.yaml by manual.
2020-08-04 09:31:35 +08:00
wonglend
4cbb324cca
bugfix(CLI): fix wrong info Warning! Running apisix under /root when make init at non-root path (#1976) 2020-08-03 19:12:02 +08:00
nic-chen
333962a54b
bugfix: run apisix start several times will start multi APISIX servers (#1913) 2020-07-29 18:43:41 +08:00
nic-chen
a5fc25c2a9
feat: Support admin API authentication with SSL certificates (#1747) 2020-07-21 11:41:11 +08:00
罗泽轩
bfa24d41ba
feature: allow to congfiure the worker_shutdown_timeout (#1828)
The default 3s may be too low.
2020-07-10 21:59:44 +08:00
Wen Ming
a4e31b2f3d
optimize: increase ssl_session_cache size to 20m. (#1797) 2020-07-10 11:31:32 +08:00
wonglend
588d46ff18
fix: replace location /robots.txt with location =/robots.txt for admin page. (#1807) 2020-07-07 10:36:32 +08:00
xxm404
794b1eb65e
bugfix: return 404 Not Found when the dashboard folder is empty. (#1799)
close #1794
2020-07-03 21:18:05 +08:00
YuanSheng Wang
ee7533874d
optimize: Use lru to avoid resolving IP addresses repeatedly . (#1772)
* optimize: Use lru to avoid resolving IP addresses repeatedly .
Cached the global rules to `ctx` .

* optimzie: used a longer time interval for etcd and flush access log.

* optimize: return upstream node directly if the count is 1 .

* optimize: avoid to cache useless variable.
2020-06-28 18:14:38 +08:00
Wen Ming
d372fe2516
bugfix: fixed configures of nginx.conf for security reasons (#1759)
removed working_directory and removed TLSv1 TLSv1.1 from ssl_protocols
2020-06-23 16:03:19 +08:00
YuanSheng Wang
9b47b31c50
change: disable reuseport in development mode, it more easy to manage worker process. (#1175) 2020-06-10 11:32:52 +08:00
Yousa
4b47391a6c
bugfix(CLI): generate the 'worker_cpu_affinity' config for Linux OS (#1658)
Fix #1657
2020-06-09 20:44:15 +08:00
dabue
d780f7406f
[bugfix(CLI)]: check whether the user has enabled etcd v2 protocol. (#1665) 2020-06-09 20:42:38 +08:00
Yousa
f61b7036b0
[log] Optimize the buffer size and flush time (#1570)
* yousali:<log>Optimize the buffer size and flush time

1. buffer=4096 is better for Writes of more than PIPE_BUF bytes may be nonatomic
2. flush=1. Since the log buffer is lowered, the flush time should also be lowered.

* yousali:<fix>

hi, I also made a test.

```
4096  Requests/sec:  16079.75
8192 Requests/sec:  16389.52
16384 Requests/sec:  16395.30
32768 Requests/sec:  16459.71
```
I think a log buffer size of 8192 or 16384 would be appropriate.

On the other hand, the refresh time of 3 seconds is still relatively long, and 1 or 3 seconds doesn't particularly affect QPS.

So I also agree with `buffer=16384 flush=1; `
2020-06-07 23:57:54 +08:00
dabue
3228e16705
feature: support to enable HTTPS for admin API (#1648) 2020-06-07 21:02:50 +08:00
仇柯人
52fa154217
CLI: compatibility of benchmark script and apisix reload command on OSX (#1650) 2020-06-06 09:35:12 +08:00
Wen Ming
398941b72f
feature: add skywalking plugin. (#1241) 2020-05-27 17:55:47 +08:00
xxm404
5aeac03821
bugfix(CLI): fixed garbled Chinese response in browser. (#1598)
fix #1559
2020-05-25 23:14:36 +08:00
罗泽轩
9a6fc51d29
bugfix: raise error when none of the configured etcd can be connected (#1608)
Close #1561.
2020-05-22 20:47:47 +08:00
dengliming
3906545ac5
bugfix: incorrect variable name hostCount (#1585) 2020-05-14 23:29:11 +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
04539ae972
bugfix(CLI): added $prefix/deps/share/lua/5.1/?/init.lua to search path. (#1443) 2020-04-13 09:54:07 +08:00
Wen Ming
c76e7e3623
feature: remove lua dir. (#1351) 2020-03-31 23:23:29 +08:00
qiujiayu
11a9646866
change: check item count of DNS resolver (#1361) 2020-03-31 13:37:50 +08:00
SuperWalle
12677c322b
feature: Allow add custom shared dict (#1367) 2020-03-31 10:22:58 +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
罗泽轩
dcd2ebc5e4
chore: improve plugins/proxy-cache (#1305)
1. unit all the default cache time to 10s.
2. remove repeated `if proxy_cache` check.
3. improve `generate_complex_value`'s performance.
4. better indent.
2020-03-20 12:26:43 +08:00
agile6v
fc948f9578
feautre: support for proxy mirror plugin. (#1288) 2020-03-19 08:10:03 +08:00
Ayeshmantha Perera
cee03225f8
feature: support multiple etcd address. (#1283) 2020-03-19 08:01:41 +08:00
agile6v
864aa16e91
feature: support for proxy caching plugin based on disk. (#1153) 2020-03-15 22:26:08 +08:00
Nirojan Selvanathan
2a2762a9c2
CLI: Adding warning message when running APISIX in root path. (#1236) 2020-03-13 15:57:12 +08:00
Ayeshmantha Perera
bd0ebdf742
CLI: bugfix profile path not found exception. (#1210) 2020-03-07 14:29:14 +08:00
Wen Ming
a610e8917c
Revert "feature: auto import nameservers into APISIX from system resolver. (#1167)" (#1205)
This reverts commit e1ac426443.
This PR break CI and no test cases cover, so I have to revert it.
2020-03-06 10:30:32 +08:00
dabue
6d2ecee48f
change: disables logging of errors about not found files into error_log for admin api.
Fix #1168
2020-03-04 09:37:26 +08:00
Ayeshmantha Perera
7340a07411
CLI: fixed bad code style. (#1182) 2020-03-03 17:34:20 +08:00
qiujiayu
e1ac426443
feature: auto import nameservers into APISIX from system resolver. (#1167)
Fix #1164
2020-03-02 16:04:15 +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
e33f75da4e
bugfix: use ss.listen_port to generate https listening port. (#1133) 2020-02-18 12:40:15 +08:00
agile6v
01a5b807b5
feature: Add support for PROXY Protocol. (#1113) 2020-02-12 10:53:20 +08:00
YuanSheng Wang
4a681af4cb
CLI: added missing Lua path. (#1114) 2020-02-09 20:57:13 +08:00
Yousa
60b2493f5b CLI: bin/apisix to support the SO_REUSEPORT (#1085)
Fix #342
2020-02-09 17:19:45 +08:00
罗泽轩
abcd197312
feature: increase the default size of the core file (#1105)
Close #1101.
2020-02-04 11:02:07 +08:00
罗泽轩
fda20d99d5
feature: make the number of file is as configurable as the connections. (#1098) 2020-02-02 09:13:34 +08:00
Lien
86c4ef64d1 CLI: fixed path error when install with luarocks (#1068) 2020-01-16 15:22:30 +08:00
YuanSheng Wang
68d36e126d bugfix: added /usr/share/lua/5.1/apisix/lua/?.lua; to lua path (#1060) 2020-01-15 14:19:44 +08:00
tiantian wang
65446e8f24 change: add tips in the generated nginx.conf (#1040) 2020-01-12 09:10:51 +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
c21b8d2fde CLI: only used original Lua package path. (#1032) 2020-01-09 14:24:37 +08:00
YuanSheng Wang
ab86830f0f bugfix: use current folder as working space for developer. (#1030) 2020-01-07 20:18:25 +08:00
YuanSheng Wang
d4442ff6a7
change: disable search engine inclusion. (#1012) 2020-01-03 10:08:00 +08:00
ChelinTsien
101fe73525 bugfix: fix CIDR ip html escaped for real_ip_from in apisix (#1007)
when the value of set_real_ip_from is CIDR, the {{real_ip}} will html escaped.
2019-12-30 17:51:55 +08:00
ChelinTsien
206f8b8037 CLI: update apisix, maybe custom directory place in /usr (#1002) 2019-12-27 11:18:26 +08:00
Yousa
eff1ca78e9 feature: added support CORS for /apisix/admin. (#982) 2019-12-24 14:44:42 +08:00
Nirojan Selvanathan
9e0030e2e8 feature: added dev mode flag in config yaml to set the nginx worker_process to one (#926) 2019-12-05 00:09:20 +08:00
chnliyong
7443133031
Resolve #882 and simplify conf (#894)
* Resolve #882 and simplify conf
2019-11-24 23:05:52 +08:00
YuanSheng Wang
2c57621f23 bugfix: avoid a useless redirect when access /apisix/dashboard. (#886) 2019-11-20 19:01:59 +08:00
Lien
7b29586f7a fix: show more firendly error log when configuration field missed (#824) 2019-11-09 21:07:24 +08:00
周晶
c8934b2641 doc: update FAQ, add one about slow luarocks (#813) 2019-11-09 09:21:46 +08:00
YuanSheng Wang
4ee11806de
travis: supported to run APISIX with Tengine. (#683) 2019-11-02 09:05:38 +08:00
YuanSheng Wang
a1c56ceb53 bugfix: skipped to init etcd if use local file as config center. (#737) 2019-11-02 07:59:59 +08:00
WenMing
12a2b01b71
license: add ASF header. (#743) 2019-10-31 09:27:28 +08:00
Geikiy
b49b03d863 CLI: added restart apisix server command (#765) 2019-10-30 20:36:56 +08:00
YuanSheng Wang
7309a0185b
bugfix: create /proto folder in etcd, will store protocol buffer description file. (#714) 2019-10-19 08:09:56 +08:00
WenMing
9ebd052403 bugfix: removed epoll in nginx.conf. (#711) 2019-10-18 21:55:01 +08:00
coolsoul
8075520fc8 CLI: added more nginx configures in the config.yaml. 2019-10-15 19:59:40 +08:00
WenMing
bf2a769071 bugfix: set ssl_ciphers to old mode as default. (#667) 2019-10-11 11:30:47 +08:00
YuanSheng Wang
0e10fa6c68
feature: enabled HTTP2 and supported to set ssl_protocols. (#663)
* feature: enabled HTTP2 and supported to set `ssl_protocols`.
* bugfix: used default certificate if failed to load certificate by SNI.

Fix #595.
2019-10-10 22:28:58 +08:00
WenMing
af5c488e71
bugfix: skip check cjson for luajit environment for apisix CLI. (#652) 2019-10-09 17:49:11 +08:00
YuanSheng Wang
0d36723e6f
change(dashboard): use /apisix/dashboard to login dashboard. (#611)
change(CLI): exported new argument of `error_log.level`.
change(CLI): enabled dashboard when use an independent admin port.
2019-09-27 10:16:29 +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
509f055a5a
change: installed tinyyaml by luarocks. (#527)
* change: installed tinyyaml by luarocks.
2019-09-17 10:43:18 +08:00
YuanSheng Wang
4aaaf3ee5a
feature: support dynamic stream(TCP/UDP) proxy in apisix. (#501)
* feature: support stream in apisix.
* doc: added new feature in README.
* CLI and added more doc.
2019-09-12 13:27:18 +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
WenMing
f7c04747d5
feature: implemented openid-connect plugin. (#447) 2019-08-30 19:49:45 +08:00
Yuansheng
2400c048b7 change: if we don't set any IP list, then any IP access is allowed by default for admin API. 2019-08-29 16:16:24 +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
WenMing
07b0a9deab feature: added version option for CLI. 2019-08-22 14:57:46 +08:00
Yuansheng
37a06f3299 bugfix(CLI): used longer timeout when connect to etcd. 2019-08-22 11:29:39 +08:00
nic-chen
e46e8f2130 * feature: support grpc-proxy REST <-> gRPC case. (#410) 2019-08-21 23:10:34 +08:00
chnliyong
14c2b55e22 bugfix: fixed location of dashboard in nginx.conf.(#386) 2019-08-09 15:09:07 +08:00
vkill
4badcb0b18 bugfix: fixed wrong allow in /apisix/dashboard (#344) 2019-07-31 21:32:41 +08:00
WenMing
6e457bfc07
bugfix: fixed hard code ip addr of dashboard. (#338)
* bugfix: fixed hard code ip addr of dashboard.

* fixed location of dashboard.
2019-07-31 14:51:20 +08:00
WenMing
f8deb1eb3b
feature: support multiple ips of allow. (#340) 2019-07-31 14:51:00 +08:00
Yuansheng
dd20bc79ac change(CLI): removed duplicated include option. 2019-07-31 12:32:39 +08:00
WenMing
084bc64988
feature: added dashboard as submodule. (#328) 2019-07-30 14:00:43 +08:00
WenMing
bbe481987e
bugfix: fixed wrong of allow and deny in nginx.conf. (#330)
only has the allow is useless, which is must works with deny. it's security problem.
2019-07-29 18:07:10 +08:00
vkill
198628df75 bugfix(CLI): fixed node_ssl_listen conf not working #321 (#324) 2019-07-28 12:48:46 +08:00
YuanSheng Wang
bce0c673c5
CLI: added shdict upstream-healthcheck. (#279) 2019-07-21 09:08:06 +08:00
YuanSheng Wang
95ed5abee8
change(CLI): simple code style and check the openresty version at init (#278)
phase.
2019-07-21 08:49:29 +08:00
coolsoul
170060619a change: check the openresty version in Lua land. (#275)
* check the openresty version in Lua land.

Fix #245.
2019-07-21 08:05:54 +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 Wang
35febe0609
change(CLI): code style. (#258)
use 4 space instead of `tab`.
simple code style.
short length of source code.
2019-07-17 23:36:29 +08:00
vkill
89f18e4349 bugfix(CLI): added timeout to init_etcd (#257) 2019-07-17 21:57:41 +08:00
WenMing
3e1f8e6121
feature: added configure for anti-ReDoS. (#250)
This configuration can avoid catastrophic backtracking of regular expressions, but to solve this problem thoroughly, we need to replace the regular engine, such as RE2.
2019-07-15 13:14:07 +08:00
coolsoul
faeb07cadb feature: added check for openresty version and fixed style of documents. (#244) 2019-07-14 09:32:22 +08:00
WenMing
9fa04a923c
feature: supported real_ip configure in nginx.conf and added functions to get ip and remote ip. (#236)
* feature: supported real_ip configure in nginx.conf and added functions to get ip and remote ip.

* fixed code style.
2019-07-12 11:25:17 +08:00
YuanSheng Wang
cd4eb7deed CLI: changed code style. (#225) 2019-07-09 22:28:02 +08:00
希望之石
f92f8a7829 bugfix: issue #223 (#224)
need to add `-c xxx` option for `stop` and `reload` action.

apisix 脚本stop、reload 也需要增加 -c 参数指定 nginx.conf 路径
2019-07-09 17:59:30 +08:00