Reference
set server
Change a server’s properties.
Description Jump to heading
Use the set server command to change the following properties of a backend server:
| Server property | Parameter | Note |
|---|---|---|
| Ready / drain / maintenance state | state | |
| IP address (IPv4 or IPv6) | addr [port] | Use addr (without specifying a port) prior to version 2.4r1. |
| FQDN | fqdn | |
| Weight | weight | |
| Health status | health | |
| Health check agent status | agent | |
| Change the IP address used for server health checks. Optionally change the port. | check-addr [port] | Available since version 2.4r1. |
| Port where health check probes are sent | check-port | |
| IP address where the health check agent is listening. Optionally change the port. | agent-addr [port] | Use agent-addr (without specifying a port) prior to version 2.4r1. |
| Port where the health check agent is listening | agent-port | Available since version 2.4r1. |
| Configure SSL on the server. Health check path is not changed by SSL mode. | ssl | (Deprecated after version 2.5r1. Instead use add-server to create a dynamic server having the desired parameters.) |
| String that the load-balancer sends to the agent during each health check | agent-send |
Examples Jump to heading
Following are examples of using the set server command.
Change a server’s state Jump to heading
Use the following state parameters, depending on your goals:
| Receive traffic | Perform health checks | state parameter |
|---|---|---|
| Yes | Yes | ready |
| No | Yes | drain |
| No | No | maint |
Below, we set the server’s state to drain:
nixecho "set server webservers/s1 state drain" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 state drain" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
Change a server’s address and port Jump to heading
Below, we use the addr parameter to change the s1 server’s IP address to 127.0.0.1:
nixecho "set server webservers/s1 addr 127.0.0.1" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 addr 127.0.0.1" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
Below, we change the server’s IP address to 127.0.0.1 and its port to 8081:
nixecho "set server webservers/s1 addr 127.0.0.1 port 8081" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 addr 127.0.0.1 port 8081" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
Change a server’s FQDN Jump to heading
Suppose you’ve specified a fully qualified domain name (FQDN) for the server instead of an IP address, and you’ve added a resolvers parameter to use a resolvers section, as shown below:
haproxyresolvers mydnsnameserver dns1 192.168.50.30:53accepted_payload_size 8192backend webserversserver s1 s1.example.com:8080 check resolvers mydns
haproxyresolvers mydnsnameserver dns1 192.168.50.30:53accepted_payload_size 8192backend webserversserver s1 s1.example.com:8080 check resolvers mydns
You can use the fqdn parameter to change the server’s domain name dynamically:
nixecho "set server webservers/s1 fqdn s1.example.local" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 fqdn s1.example.local" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
Change a server’s weight Jump to heading
The weight parameter changes a server’s weight. The value can be a percentage or an exact number. In the example below, we set the server’s weight to 50% of its current value:
nixecho "set server webservers/s1 weight 50%" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 weight 50%" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
Change active health checks Jump to heading
Use the following health parameters, depending on your goals:
| Goal | health parameter |
|---|---|
| Take the server out of the load-balancing rotation. | down |
| Add the server back into the load-balancing rotation. | up |
| Drain traffic. | stopping |
In the next example, the health parameter sets the server’s health status to down, which takes it out of the load-balancing rotation.
nixecho "set server webservers/s1 health down" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 health down" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
The check-port parameter changes the port where health check probes are sent:
nixecho "set server webservers/s1 check-port 8080" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 check-port 8080" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
Change agent health checks Jump to heading
In the example below, the agent parameter sets the server’s agent to a new state. You can set either up or down:
nixecho "set server webservers/s1 agent down" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 agent down" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
The agent-addr parameter changes the IP address where the agent is listening:
nixecho "set server webservers/s1 agent-addr 192.168.0.11" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 agent-addr 192.168.0.11" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
As of version 2.4r1, optionally, you can append the port parameter to agent-addr to specify a new port for the agent.
nixecho "set server webservers/s1 agent-port 49999" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 agent-port 49999" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
You can also change the agent port without using the agent-addr parameter by just using the agent-port parameter by itself:
The check-addr parameter changes the IP address used for server health checks. Optionally, add the port parameter to change the port.
nixecho "set server webservers/s1 check-addr 192.168.0.12 port 49999\n" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 check-addr 192.168.0.12 port 49999\n" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
The agent-send parameter changes the string that the load balancer sends to the agent during each health check:
nixecho "set server webservers/s1 agent-send ping\n" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 agent-send ping\n" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
Change SSL Jump to heading
Turn SSL ciphering on or off for outgoing server connections (as of version 2.4r1):
nixecho "set server webservers/s1 ssl on\n" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
nixecho "set server webservers/s1 ssl on\n" | \sudo socat stdio tcp4-connect:127.0.0.1:9999
See also Jump to heading
Do you have any suggestions on how we can improve the content of this page?