The site stays up
ToutWAF shares the requests between your servers according to the weight of each one, and stops sending requests to a server that fails. Visitors never notice the switch.
Several servers behind one site: ToutWAF shares the requests, stops using a server that fails, and lets you update without cutting a single request. The details are here, with what is free and what needs a licence.
A site rarely needs just one server. With a group of servers behind ToutWAF, a failure, an update or a traffic peak stops being an incident.
ToutWAF shares the requests between your servers according to the weight of each one, and stops sending requests to a server that fails. Visitors never notice the switch.
Put a server in maintenance: it receives no new request, the ones in progress finish normally, and it takes its load back gradually.
Send a share of the requests to the servers of the new version (canary), switch everything at once (blue/green), and go back by setting the share to 0 %.
Send /api, a host name, a header, a method, a country or an A/B test share to its own group of servers.
Time limits, safe retries and a circuit breaker: ToutWAF stops sending traffic to a server that fails too often, tries it again later, and answers fast instead of keeping visitors waiting.
Take a node out of the rotation without cutting a request, and check what your DNS really answers.
Each site has a list of servers (origins), each with a weight from 1 to 1000. For every request, ToutWAF keeps only the servers that are available, then applies the algorithm you chose.
A server is a candidate unless it is in maintenance, marked down by the active check, set aside by the passive check, or behind an open circuit breaker.
A backup server is used only when no main server is available.
A site with a single main server is never marked down by the checks: its requests always go to it, unless it is in maintenance or its breaker is open.
The weighted round robin, the default, is free. The other algorithms are chosen per site in the console, with the “Load balancing algorithm” setting.
“Fastest” follows the response time measured by the node; it does not measure the distance between the visitor and the node. Weights go from 1 to 1000: a server of weight 3 receives three times more requests than a server of weight 1.
ToutWAF asks each server: a path such as /health, or a plain TCP connection; GET or HEAD; the response codes you expect; the number of failures before “out of service” and of successes before it returns; an optional Host header. A server that comes back is used again automatically.
Live requests that fail (connection error, timeout, 502, 503, 504, or a response slower than a limit you set) take the server out of the rotation for a while.
A request that fails is replayed on another server, but only when it is safe: a POST that may have reached a server is never replayed, nor is a large streamed upload.
On by default for everybody. When a server fails too often within a time window, ToutWAF sets it aside, answers fast instead of keeping visitors waiting, then lets a single test request decide whether it comes back. By default: a 30-second window, at least 20 requests, half of them failing, 15 seconds aside. These values can be tuned (licence).
Name a cookie and ToutWAF pins each visitor to the server that served them first. The cookie holds an opaque identifier of the server, never its address; it is HttpOnly, SameSite=Lax and Secure over HTTPS. You choose its lifetime, or it ends with the browser.
From the console, put a server (or a whole node) in maintenance. Nothing is cut: visitors are served by the others.
No new request is sent to the server any more, even to visitors carrying the persistence cookie.
Downloads, event streams and WebSocket connections run to completion; the console shows how many remain.
The console tells you when nothing is left in progress.
Back in service, the server receives a growing share of its weight over the number of seconds you set (slow start), instead of everything at once.
The last server in service cannot be put in maintenance: add another one first.
Give the servers of the new version a group name (for example green), then choose that group and its share of the requests, from 0 to 100 %. The share counts requests, whatever the number of servers in each group.
A route sends the requests that match it to a pool of its own. It can match a path, a host name, a header, a method, the country of the visitor or an A/B test share.
Example of a route, in the site's “Routing rules” setting
[{"name": "api",
"match": {"path_prefix": "/api"},
"origins": [
"http://10.0.0.7:8080",
{"url": "http://10.0.0.8:8080", "weight": 3},
{"url": "http://10.0.0.9:8080", "backup": true}]}]When several nodes protect the same sites, visitors reach them through a DNS name that lists their addresses, a virtual address (VRRP, for example keepalived) or a load balancer of your own. ToutWAF does not change your DNS and does not move addresses: it shows what is true and lets a node leave the rotation cleanly.
Ещё не проверено в реальных условияхNode maintenance is tested automatically, but the move of a real keepalived virtual address between two nodes has not yet been tried in real conditions.
What ToutWAF does not do: manage your DNS, move a virtual address, or share the load between nodes by itself. The number of nodes follows your plan (see pricing).
The settings of the link between ToutWAF and your servers are free: no licence is needed.
Cache, compression, rewrites, redirects, error pages and the real address of the visitor are part of traffic delivery too. See the details
Sites, your site, Servers tab: the list of servers with their live state, maintenance and settings. Fleet and licence, Balancing tab: the state of the nodes, the DNS records and their check.
| State | Server | Group | Weight | Backup |
|---|---|---|---|---|
| In service | http://10.0.0.11:8080 | blue | 3 | - |
| In service | http://10.0.0.12:8080 | blue | 1 | - |
| In maintenance | http://10.0.0.13:8080 | green | 1 | - |
| Ramping up | http://10.0.0.14:8080 | green | 1 | - |
| In service | http://10.0.0.15:8080 | - | 1 | yes |
Illustration: the addresses are examples.
Two servers share the load; a third, a backup, takes over only if both fail.
One server goes into maintenance, requests in progress finish, then it comes back gently.
A small share of the requests goes to the servers of the canary group; you raise the share or go back to 0 %.
A route sends /api to a dedicated pool, with its own algorithm, without touching the rest of the site.
A persistence cookie pins each visitor to their server while it is available.
The node goes into maintenance, its connections move away, your balancer or keepalived removes it, you work on it.
The basics are free; the advanced options need a paid offer. An option under licence stays visible in the console, locked, never hidden.
Вернуться к значению по умолчанию для расширенной опции можно всегда. Что происходит по окончании платной лицензии, описано в вопросах и ответах о тарифах: 48 часов льготного периода, 48 часов только для чтения, затем защита WAF отключается до продления.
Установите его на собственный сервер или напишите нам, чтобы обсудить лицензии.