The RunTime API allows to change the settings in real-time mode. Using the RunTime API you will have no downtime and no necessity to restart and reload the HAProxy service.
If you disable, for instance, a frontend or a backend servers, the changes will not be saved; moreover, they will be rolled back at the next restart of HAproxy. If you the "Save changes" checkbox, the changes will not be saved in the configuration files so you may have difficulties with debugging or simply be confused.
To avoid these problems Roxy-WI offers you the opportunity to use the interface that works with the HAProxy RunTime API. It allows to edit the runtime configuration and to save changes in the config file without downtime.
Note that if you make changes on the master server, these changes will take effect on the slave server too.
Actual commands for HAProxy v2
|prompt||toggle interactive mode with prompt|
|show tls-keys [id|*]||show tls keys references or dump tls ticket keys when id specified|
|set ssl tls-key [id|keyfile]
||set the next TLS key for the
|show sess [id]||report the list of current sessions or dump this session|
|shutdown session||kill a specific session|
|shutdown sessions server||kill sessions on a server|
|clear counters||clear max statistics counters (add 'all' for all counters)|
|show info||report information about the running process|
|show stat||report counters for each proxy and server|
|show schema json||report schema used for stats|
|disable agent||disable agent checks (use 'set server' instead)|
|disable health||disable health checks (use 'set server' instead)|
|disable server||disable a server for maintenance (use 'set server' instead)|
|enable agent||enable agent checks (use 'set server' instead)|
|enable health||enable health checks (use 'set server' instead)|
|enable server||enable a disabled server (use 'set server' instead)|
|set maxconn server||change a frontend's maxconn setting|
|set server||change a server's state weight or address|
|get weight||report a server's current weight|
|set weight||change a server's weight (deprecated)|
|show resolvers [id]||dumps counters from all resolvers section and|
|associated name servers clear table||remove an entry from a table|
|set table [id]||update or create a table entry's data|
|show table [id]||report table usage stats or dump this table's contents|
|show peers [peers section]||dump some information about all the peers or this peers section|
|disable frontend||temporarily disable specific frontend|
|enable frontend||re-enable specific frontend|
|set maxconn frontend||change a frontend's maxconn setting|
|show servers state [id]|| dump volatile server information (for backend
|show backend||list backends in the current running config|
|shutdown frontend||stop a specific frontend|
|set dynamic-cookie-key backend||change a backend secret key for dynamic cookies|
|enable dynamic-cookie backend||enable dynamic cookies on a specific backend|
|disable dynamic-cookie backend||disable dynamic cookies on a specific backend|
|show errors||report last request and response errors for each proxy|
|set maxconn global||change the per-process maxconn setting|
|set rate-limit||change a rate limiting value|
|set severity-output [none|number|string]||set presence of severity level in feedback information|
|set timeout||change a timeout setting|
|show env [var]||dump environment variables known to the process|
|show cli sockets||dump list of cli sockets|
|show cli level||display the level of the current CLI session|
|show fd [num]||dump list of file descriptors in use|
|show activity||show per-thread activity stats (for support/developers)|
|operator||lower the level of the current CLI session to operator|
|user||lower the level of the current CLI session to user|
|show startup-logs||report logs emitted during HAProxy startup|
|show cache||show cache status|
|add acl||add acl entry|
||clear the content of this acl|
|del acl||delete acl entry|
|get acl||report the patterns matching a sample for an ACL|
|show acl [id]||report available acls or dump an acl's contents|
|add map||add map entry|
||clear the content of this map|
|del map||delete map entry|
|get map||report the keys and values matching a sample for a map|
|set map||modify map entry|
|show map [id]||report available maps or dump a map's contents|
|show pools||report information about the memory pools usage|
|show profiling||show CPU profiling options|
|set profiling||enable/disable CPU profiling|
|show threads||show some threads debugging information|
Dynamically change the global maxconn setting within the range defined by the initial global maxconn setting. If it is increased and connections were pending, they will immediately be accepted. If it is lowered to a value below the current number of connections, new connections acceptation will be delayed until the threshold is reached. A value of zero restores the initial setting.
Dynamically change the specified frontend's maxconn setting. Any positive value including zero is allowed, but setting values larger than the global maxconn does not make much sense. If the limit is increased and connections were pending, they will immediately be accepted. If it is lowered to a value below the current number of connections, new connections acceptation will be delayed until the threshold is reached.
Roxy-WI allows to change IP and Port for backends on-fly without reloading or restarting HAProxy service.
How you may do it:
- First step: select the server on which you would like to change the settings
- Second step: select the necessary backend
- Third step: select a server inside the backend (Roxy-WI shows the running settings, you can change them)
- Fourth step: press "Enter"
Changes will take effect for the running configuration and will be saved in the configuration file as well. This means that the changes will not be lost if you restart HAProxy service.
HTTP requests are stateless by design. However, this raises some questions regarding how to track user activities, including malicious ones, across requests so that you can collect metrics, block users, and make other decisions based on state. The only way to track user activities between one request and the next is to add a mechanism for storing events and categorizing them by client IP or other key.
Out of the box, HAProxy gives you a fast, in-memory storage called stick tables. Roxy-WI allows to manage it via GUI.
Block or allow the specified IP addresses on HAProxy load balancer using a simple Access Control List.