Get all the functionalities from Community Edition, plus the following PRO features to make GPC more powerful.
Contact Us!Reload internal configuration without restarting the process, with zero downtime.
Group URL resources with cache tags (X-Go-Proxy-Cache-Tag
) and be able to invalidate a cache tag in one PURGE request.
Show additional metrics about CPU, Memory, Disk, Network usage, System metrics (load, uptime), Incoming/Outgoing traffic, Worldwide distribution on map, HTTP Request Headers.
More deeper traces for cache layer, load balancing algorithms, additional http request's details.
Docker image with os support for Debian, Ubuntu, Alpine, Fedora, Amazon Linux 2.
Get a deeper overview of the internals with additional metrics tracked with Prometheus.
Get all the functionalities from PRO Edition, plus the following PREMIUM features to go to the extreme.
Contact Us!Configure the Kubernetes resources easily via Helm or YAML.
HA support for active-active or active-passive nodes.
Limit incoming HTTP request globally or per user.
Customise internal timeouts and intervals (eg: health check, load balancing, cache stampede protection, log levels).
Additional tags, release tracking, breadcrumbs, runtime/operating system data, distributed tracing.
Docker image with platform support for amd64, arm32/v7, arm64v8.
Get in touch with us for any issue you might have and we will help you fixing it.
via YAML or Environment Variables.
does not require Go, Git or any other software installed. Just run the binary or the container.
via Redis
by calling HTTP Method PURGE
on the resource URI.
by using the HTTP Header X-Go-Proxy-Cache-Force-Fresh
the request will always be fresh.
by replicating exactly the same original amount.
allows caching for different response codes or HTTP methods.
generating non-weak tags, handling 304 Not Modified
, managing HTTP headers If-Modified-Since
, If-Unmodified-Since
, If-None-Match
, If-Match
.
ETag wrapper doesn't work well with WebSocket and HTTP/2.
delaying invalidation request to the backend using an extra small random TTL (between 5s and 10s).
used mainly for avoiding cache stampede, for maximum 10s.
the upstream hostname will be cached to speed up the response and avoid the DNS resolution at each request.
uses a list of IPs/Hostnames as load balanced backend servers.
choose among IP Hash, Least Connections, Random or Round-Robin.
it's possible to provide the HTTP Basic Auth for each endpoint (by specify user:pass in the URL).
HTTP/2 Pusher is achievable only if upstream implements HTTP header Link
.
provides automatic generation of SSL/TLS certificates from Let's Encrypt and any other ACME-based CA.
optional
exposes the route /healthcheck
(internally).
verifies periodically if upstream nodes are healthy.
Vary
, ETag
, Cache-Control
and Expires
.
Unit, Functional & Linted & 0 Race Conditions Detected.
bypassing Redis when not available.
override and fine-tune the global settings per domain.
optional, status code to be used when redirecting HTTP to HTTPS.
optional
it is possible to configure in details the server overall timeouts (read, write, headers, handler, idle).
it is possible to adjust the settings about thresholds, timeouts and failure rate.
stdout or file.
it is possible to have additional levels of details by settings the flags -verbose
or -debug
.
each line in logs has a RequestID to easily identify the response flow.
each request has a deep tracing with Jaeger (optional).
exposes the route /metrics
(internally) to serve Prometheus metrics.
all warning/error logs can be forwarded to Sentry and/or Syslog.