Installing HAProxy 1.7 on Debian 9.1 (Stretch)

HAProxy is a network software application that offers high availability, load balancing, and proxying for TCP and HTTP network applications. It is suited for high traffic websites, and powers many popular sites across the web. This article will show you how to install and configure HAProxy on Debian 9.1.

Although HAProxy has several prominent features, this article focuses on how to setup HAProxy to "proxy" your web application.

Requirements

  • At least two Vultr servers (for load balancing functionality) with your website or web application deployed to both of them.

Installing HAProxy

Debian 9 already ships with HAProxy 1.7 (latest stable release at time of writing), and we can simply install it using apt-get:

# apt-get update
# apt-get install haproxy

If the previous commands were successful, then you have installed HAProxy and you can proceed to the next step.

Configuring HAProxy

The HAProxy configuration file is split up into two sections — "global" and "proxies". One deals with process-wide configuration, while the latter consists of default configuration, frontend, and backend sections.

Global Section

Using your favorite text editor, open /etc/haproxy/haproxy.cfg and notice the predefined sections: "global" and "defaults". The first thing that you may want to do is increase the maxconn to a reasonable size, as this affects the connections that HAProxy allows. Too many connections may cause your web service to crash due to many requests. You will need to adjust the size to see what works for you. In the global section, we have chosen a maxconn value of 3072.

global
    daemon
    maxconn 3072

In the default section, add the following line under mode http:

option forwardfor

This will add X-Forwarded-For headers to each request, which allows your backend servers to learn the original IP address of the user.

Also, add this line to enable HTTP connection-close mode on the server side while keeping the ability to support HTTP keep-alive on the client side. This reduces latency on the client side and helps conserve server resources:

option http-server-close

If you wish to use keep-alive on both the client and server sides, then you could use option http-keep-alive instead. This option is particularly useful when the cost of establishing a new connection to the server is significant compared to the cost of retrieving the requested resource.

Finally, the resulting config file will look something like this:

defaults
    mode http
    option forwardfor
    option http-server-close
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

Proxies Section

To set up your proxy, you will need to add two sections to the configuration file to define the two parts of the proxy: the frontend and the backend.

Frontend Configuration

The frontend will handle your HTTP connections. Add the following to the end of your haproxy.cfg file:

frontend http-frontend
    bind public_ip:80
    reqadd X-Forwarded-Proto:\ http
    default_backend wwwbackend

Be sure to replace public_ip with your server's public IP address or domain name.

Backend Configuration

Setup your backend by adding the following lines to the end of your configuration file:

backend wwwbackend
    server 1-www server1_ip:80 check
    server 2-www server2_ip:80 check
    server 3-www server3_ip:80 check

The backend configuration used here creates 3 connections named X-www. (X is 1, 2 or 3.) Each one of them corresponds to a serverX_ip:80 address. (Replace serverX_ip with your Vultr instances' IP addresses.) This will allow you to load balance between each server in the specified server set (assuming each IP address corresponds to a different server). The check option makes the load balancer perform health checks on the server.

Save the configuration file, and then restart HAProxy:

service haproxy restart

If everything is working, then you will be able to connect to http://public_ip/ (replacing it with your public IP or domain name as configured in the frontend step) and view your website.

Debugging Errors

If your HAProxy instance refuses to start after your modifications, chances are that you have an error somewhere in the configuration file. To get clear messages about the issue in the configuration file, you can try to start HAProxy manually using this command:

# haproxy -f /etc/haproxy/haproxy.cfg

For instance, if you see output like this:

[ALERT] 234/195612 (2561) : parsing [/etc/haproxy/haproxy.cfg:48] : server 1-www has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.
[ALERT] 234/195612 (2561) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 234/195612 (2561) : Fatal errors found in configuration.

Then, you have forgotten to specify the port number for the server 1-www.


A Cacti beállítása a Debian Jessie-n

A Cacti beállítása a Debian Jessie-n

Bevezetés A Cacti egy nyílt forráskódú megfigyelő és grafikus eszköz, amely teljes mértékben az RRD adatokon alapul. A Cactuson keresztül szinte bármilyen típusú eszközt felügyelhet

Az iRedMail beállítása a Debian Wheezy rendszeren

Az iRedMail beállítása a Debian Wheezy rendszeren

Más rendszert használ? Ez az oktatóanyag megmutatja, hogyan telepítheti a csoportmunka iRedMail programot a Debian Wheezy friss telepítésére. Használnia kell egy szervát

Felügyelet nélküli frissítések beállítása Debian 9-en (Stretch)

Felügyelet nélküli frissítések beállítása Debian 9-en (Stretch)

Más rendszert használ? Ha Debian szervert vásárol, akkor mindig rendelkeznie kell a legújabb biztonsági javításokkal és frissítésekkel, akár alszik, akár nem

Állítsa be a saját DNS-kiszolgálóját a Debian/Ubuntu rendszeren

Állítsa be a saját DNS-kiszolgálóját a Debian/Ubuntu rendszeren

Ez az oktatóanyag elmagyarázza, hogyan állíthat be DNS-kiszolgálót a Bind9 használatával Debian vagy Ubuntu rendszeren. A cikkben ennek megfelelően helyettesítse be a saját-domain-neve.com címet. TH-nál

Fordítsa le és telepítse az Nginx-et a PageSpeed ​​Modul segítségével a Debian 8 rendszeren

Fordítsa le és telepítse az Nginx-et a PageSpeed ​​Modul segítségével a Debian 8 rendszeren

Ebben a cikkben látni fogjuk, hogyan fordíthatja le és telepítheti az Nginx fővonalat az Nginx hivatalos forrásaiból a PageSpeed ​​modullal, amely lehetővé teszi a

A Kanboard telepítése Debian 9 rendszeren

A Kanboard telepítése Debian 9 rendszeren

Más rendszert használ? Bevezetés A Kanboard egy ingyenes és nyílt forráskódú projektmenedzsment szoftver, amely megkönnyíti és vizualizálja

A Gitea telepítése Debian 9-re

A Gitea telepítése Debian 9-re

Más rendszert használ? A Gitea egy alternatív nyílt forráskódú, saját üzemeltetésű verziókezelő rendszer, amelyet a Git üzemeltet. A Gitea golang nyelven íródott, és az is

Telepítse a Lynis-t Debian 8-ra

Telepítse a Lynis-t Debian 8-ra

Bevezetés A Lynis egy ingyenes, nyílt forráskódú rendszer-ellenőrző eszköz, amelyet sok rendszergazda használ a rendszer integritásának ellenőrzésére és a rendszer megerősítésére. én

A Thelia 2.3 telepítése Debian 9 rendszeren

A Thelia 2.3 telepítése Debian 9 rendszeren

Más rendszert használ? A Thelia egy nyílt forráskódú eszköz e-üzleti webhelyek létrehozására és PHP-ben írt online tartalmak kezelésére. Thelia forráskód i

Minecraft szerverek hálózatának létrehozása BungeeCord segítségével Debian 8, Debian 9 vagy CentOS 7 rendszeren

Minecraft szerverek hálózatának létrehozása BungeeCord segítségével Debian 8, Debian 9 vagy CentOS 7 rendszeren

Mire lesz szüksége Egy Vultr VPS legalább 1 GB RAM-mal. SSH hozzáférés (root/adminisztrátori jogosultságokkal). 1. lépés: A BungeeCord telepítése Először is

A Golang 1.8.3 telepítése CentOS 7, Ubuntu 16.04 és Debian 9 rendszeren

A Golang 1.8.3 telepítése CentOS 7, Ubuntu 16.04 és Debian 9 rendszeren

A Golang a Google által kifejlesztett programozási nyelv. Sokoldalúságának, egyszerűségének és megbízhatóságának köszönhetően a Golang az egyik legnépszerűbb lett

Állítsa vissza a MySQL root jelszót Debian/Ubuntu rendszeren

Állítsa vissza a MySQL root jelszót Debian/Ubuntu rendszeren

Ha elfelejtette MySQL root jelszavát, visszaállíthatja azt az ebben a cikkben található lépések végrehajtásával. A folyamat meglehetősen egyszerű, és ezeken működik

Hálózati megosztások létrehozása a Samba használatával a Debian rendszeren

Hálózati megosztások létrehozása a Samba használatával a Debian rendszeren

Vannak esetek, amikor olyan fájlokat kell megosztanunk, amelyeket a Windows-kliensek láthatnak. Mivel a Fuse-alapú rendszerek csak Linuxon működnek, tessék bemutatni

A Counter Strike beállítása: Forrás Debianon

A Counter Strike beállítása: Forrás Debianon

Ebben az útmutatóban egy Counter Strike: Source játékszervert fogunk beállítani a Debian 7 rendszeren. Ezeket a parancsokat a Debian 7 rendszeren teszteltük, de működniük kell

Az Unturned 2.2.5 telepítése Debian 8 rendszeren

Az Unturned 2.2.5 telepítése Debian 8 rendszeren

Ebből az útmutatóból megtudhatja, hogyan állíthat be egy Unturned 2.2.5 szervert Debian 8-at futtató Vultr VPS-en. Megjegyzés: Ez az Unturned szerkesztett változata, amely nem

A Cachet telepítése Debian 8 rendszeren

A Cachet telepítése Debian 8 rendszeren

Ebből az oktatóanyagból megtudhatja, hogyan telepítheti a Cachet Debian 8-ra. A Cachet egy hatékony, nyílt forráskódú állapotoldal-rendszer. Telepítés Ez a bemutató folyamatban van

Több MySQL vagy MariaDB adatbázis biztonsági mentése automatikusan

Több MySQL vagy MariaDB adatbázis biztonsági mentése automatikusan

Bevezetés Ebben az írásban részletesen végigvezeti, hogyan készíthet biztonsági másolatot több MySQL vagy MariaDB adatbázisról, amelyek ugyanazon a gépen vannak egy egyedi bash szkript segítségével.

Chroot beállítása Debianon

Chroot beállítása Debianon

Ez a cikk megtanítja Önnek, hogyan állítson be chroot börtönt a Debian rendszeren. Feltételezem, hogy a Debian 7.x-et használod. Ha Debian 6-ot vagy 8-at futtat, ez működhet, bu

A Reader Self 3.5 RSS Reader telepítése Debian 9 LAMP VPS-re

A Reader Self 3.5 RSS Reader telepítése Debian 9 LAMP VPS-re

Más rendszert használ? A Reader Self 3.5 egy egyszerű és rugalmas, ingyenes és nyílt forráskódú, saját üzemeltetésű RSS-olvasó és Google Reader alternatíva. Olvasó Sel

A Backdrop CMS 1.8.0 telepítése Debian 9 LAMP VPS-re

A Backdrop CMS 1.8.0 telepítése Debian 9 LAMP VPS-re

Más rendszert használ? A Backdrop CMS 1.8.0 egy egyszerű és rugalmas, mobilbarát, ingyenes és nyílt forráskódú tartalomkezelő rendszer (CMS), amely lehetővé teszi

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket