A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | full article | Kubernetes Ingress | NGINX Ingress | Kong Ingress | Traefik | HAproxy | Voyager | Contour | Istio Ingress | Ambassador | Gloo | Skipper | |||||||||||||||
2 | Protocols | http/https, http2, grpc, tcp/udp (partial) | http/https, http2, grpc, tcp/udp | http/https, http2, grpc, tcp (l4) | http/https, http2 (h2c), grpc, tcp, tcp+tls | http/https, http2, grpc, tcp, tcp+tls | http/https, http2, grpc, tcp, tcp+tls | http/https, http2, grpc, tcp/udp, tcp+tls | http/https, http2, grpc, tcp/udp, tcp+tls, mongo, mysql, redis | http/https, http2, grpc, tcp/udp, tcp+tls | http/https, http2, grpc, tcp, tcp+tls | http/https | |||||||||||||||
3 | Based on | nginx | nginx/nginx plus | nginx | traefik | haproxy | haproxy | envoy | envoy | envoy | envoy | — | |||||||||||||||
4 | Traffic routing | host, path (with regex) | host, path, header, method, query param (all with regex expect host) | host, path, method, header* | host (regex), path (regex), headers (regex), query, path prefix, method | host, path | host, path | host, path | host, path, method, header (all with regex) | host, path, method, header (all with regex) | host, path, method, header, query param (all with regex) | host, path, method, header (all with regex) | |||||||||||||||
5 | Namespace limitations | All cluster or specified namespaces | All cluster or specified namespaces | Specified namespace | All cluster or specified namespaces | All cluster or specified namespaces | All cluster or specified namespaces | All cluster or specified namespaces | All cluster or specified namespaces | All cluster or specified namespaces | All cluster or specified namespaces | All cluster or specified namespaces | |||||||||||||||
6 | Traffic distribution | canary, a/b (cookie balancing) | canary, a/b (routing rules), blue-green (service in the upstream) | canary, acl, blue-green, proxy caching* | canary, blue-green, shadowing | blue-green, shadowing | canary, blue-green, acl | canary, blue-green | canary, a/b, shadowing, http headers, acl, whitelist | canary, a/b, shadowing, http headers, acl, whitelist | canary, shadowing | canary, a/b, blue-green, shadowing, whitelist | |||||||||||||||
7 | Upstream probes | retry, timeouts | retry, timeouts, active health checks (based on http probe for pod)* | active, circuit breaker | retry, timeouts, active, circuit breaker | check-uri, check-address, check-port | haproxy healthchecks | timeouts, active | retry, timeouts, active checks, circuit breakers | retry, timeouts, active checks, circuit breakers | retry, timeouts, circuit breakers | retry, timeouts, circuit breaker | |||||||||||||||
8 | Load balancing | round-robin, sticky sessions, least-conn, ip-hash, ewma | round-robin, least-conn, ip-hash, hash, random, least-time*, sticky sessions* | weighted-round-robin, sticky sessions | weighted-round-robin, dynamic-round-robin, sticky sessions | round-robin, static-rr, leastconn, first, source, uri, url_param, header, sticky sessions | round-robin, static-rr, leastconn, first, source, uri, url_param, header, sticky sessions | round-robin, sticky sessions, weighted-least-request, ring hash, maglev, random | round-robin, sticky sessions, weighted-least-request, ring hash, maglev, random, limit conn, limit req | round-robin, sticky sessions, weighted-least-request, ring hash, maglev, random | round-robin, sticky sessions, least request, random | round-robin, sticky sessions, random | |||||||||||||||
9 | Authentication | Basic, Client cert, external Basic, external OAuth | - | Basic, HMAC, Key, LDAP, OAuth 2.0, PASETO, OpenID Connect** | Basic, auth-url, auth-tls, external auth | Basic, OAuth, Auth TLS | Basic, OAuth, auth-tls, OAuth Google, OAuth GitHub | - | Basic, mutual tls, OpenID, custom auth | Basic, external auth, OAuth, OpenID | Basic*, external auth*, OAuth*, OpenID*, LDAP* | Basic, OAuth, OpenID | |||||||||||||||
10 | Paid subscription | - | + | + | + | + | + | - | - | + | + | - | |||||||||||||||
11 | GUI | - | + * ** | + * ** | + | - | - | - | - | - | + * | - | |||||||||||||||
12 | JWT validation | - | + * | + ** | - | + ** | - | - | + | + * | + * | + | |||||||||||||||
13 | Basic DDoS protection | rate limit, limit conn, liimt rps, limit rpm, limit-rate-after, limit-whitelist | max-conns, rate limit, rate-limits (with custom annotations) | advanced rate limit*, rate limit, request size limit, request termination, response rate limit | max-conns, rate limit, ip whitelist | limit-rps, limit-connections, limit-whitelist | max-conns, rate limit, whitelist | max-conns, max-request | acl, whitelist, rate limit | rate limit, load shedding | rate limit* | rate limit | |||||||||||||||
14 | Requests tracing | + | + | + | + | - | - | - | + | + | + | + | |||||||||||||||
15 | Config customization | + | + | + | + | + | + | - | + | - | - | + | |||||||||||||||
16 | WAF | lua-resty-waf, ModSecurity | + * | Wallarm | - | ModSecurity | - | - | ModSecurity | - | ModSecurity* | - | |||||||||||||||
17 | GitHub: stars commits (contributors) releases | 8900 5574 (582) 110 | 2900 871 (57) 44 | 1230 791 (71) 27 | 31400 3791 (560) 316 | 664 1131 (39) 101 | 1248 1323 (64) 86 | 2517 2925 (119) 55 | 24900 13945 (640) 170 | 3024 15069 (162) 547 | 2646 1414 (67) 330 | 2300 1786 (104) 668 | |||||||||||||||
18 | * In paid version only. | ||||||||||||||||||||||||||
19 | ** Module is available. | ||||||||||||||||||||||||||
20 | |||||||||||||||||||||||||||
21 | |||||||||||||||||||||||||||
22 | |||||||||||||||||||||||||||
23 | |||||||||||||||||||||||||||
24 | |||||||||||||||||||||||||||
25 | |||||||||||||||||||||||||||
26 | |||||||||||||||||||||||||||
27 | |||||||||||||||||||||||||||
28 | |||||||||||||||||||||||||||
29 | |||||||||||||||||||||||||||
30 | |||||||||||||||||||||||||||
31 | |||||||||||||||||||||||||||
32 | |||||||||||||||||||||||||||
33 | |||||||||||||||||||||||||||
34 | |||||||||||||||||||||||||||
35 | |||||||||||||||||||||||||||
36 | |||||||||||||||||||||||||||
37 | |||||||||||||||||||||||||||
38 | |||||||||||||||||||||||||||
39 | |||||||||||||||||||||||||||
40 | |||||||||||||||||||||||||||
41 | |||||||||||||||||||||||||||
42 | |||||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||
44 | |||||||||||||||||||||||||||
45 | |||||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||
100 |