HAProxy

HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications.

Configuration

In this panel, you can view the status of HAProxy and perform configuration tasks. If status is Stopped there is a problem with the configuration. Fix the configuration then click Write configuration.

Note: The actions below will restart HAProxy

Write configuration

This will write the configuration file based on data in panels Frontends, Backends and Associations

Reload default configuration

Reload the default configuration of HAProxy.

Warning: Your changes in panels Frontends, Backends and Associations will be lost

Generate certificate

Create a certificate from the one used for DSM. After changing your certificate in DSM, use this to use it with HAProxy.

Frontends

A Frontend's task is to listen on one or multiple ports for incoming traffic. You can Add, Edit or Delete Frontends with the dedicated buttons.

  1. Name: Name of the Frontend without spaces (e.g. http)
  2. Binds: Coma-separated binds (e.g. :5080, me.synology.me:5081)
  3. Options: Coma-separated extra lines to insert into the configuration file (e.g. maxconn 128), see the documentation for the available options for a Frontend

Backends

A Backend is a running service like SickBeard, Web Station or ZNC that uses a specific port number. You can Add, Edit or Delete Backends with the dedicated buttons.

  1. Name: Name of the Backend without spaces (e.g. sickbeard)
  2. Servers: Coma-separated servers (e.g. sickbeard localhost:8081)
  3. Options: Coma-separated extra lines to insert into the configuration file (e.g. maxconn 128, mode http), see the documentation for the available options for a Backend

Associations

An Association links a Frontend with a Backend under a given condition. It will result in a use_backend line in the confiuration file. You can Add, Edit or Delete Associations with the dedicated buttons.

  1. Frontend: Frontend for the Association (e.g. http)
  2. Backend: Backend for the Association (e.g. sickbeard)
  3. Condition: Condition for the Frontend to use the Backend to take effect (e.g. if { hdr_dom(Host) -i blackhole }), see the documentation for the syntax of a condition. You can add ACLs to the Frontend options or use anonymous ACLs

Note: When you delete a Frontend or a Backend, all Associations related to it are also deleted