{"id":12723,"date":"2025-12-16T11:35:35","date_gmt":"2025-12-16T06:05:35","guid":{"rendered":"https:\/\/www.youstable.com\/blog\/?p=12723"},"modified":"2025-12-16T11:35:37","modified_gmt":"2025-12-16T06:05:37","slug":"what-is-haproxy-on-linux-server","status":"publish","type":"post","link":"https:\/\/www.youstable.com\/blog\/what-is-haproxy-on-linux-server","title":{"rendered":"What is HAProxy on Linux Server? &#8211; Expert Guide in 2026"},"content":{"rendered":"\n<p><strong>HAProxy on Linux server<\/strong> is an open\u2011source, high\u2011performance load balancer and reverse proxy that distributes traffic across multiple backend servers for reliability, scalability, and security.<\/p>\n\n\n\n<p>It supports Layer 4 (TCP) and Layer 7 <strong>(HTTP\/HTTPS)<\/strong>, health checks, SSL termination, sticky sessions, and observability, making it a production\u2011grade choice for web apps, APIs, and microservices.<\/p>\n\n\n\n<p>In this beginner\u2011friendly guide, you\u2019ll understand HAProxy on Linux servers from the ground up: what it does, how it works, how to install it on Ubuntu\/Debian and RHEL\u2011based distros, and how to configure it for real\u2011world workloads. We\u2019ll also cover best practices, troubleshooting, and when to choose HAProxy over alternatives.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"what-is-haproxy-and-why-use-it-on-linux\"><strong>What is HAProxy and Why Use it on Linux?<\/strong><\/h2>\n\n\n\n<p>HAProxy (High Availability Proxy) is a battle\u2011tested, open\u2011source load balancer and reverse proxy. On Linux, it\u2019s prized for stability, low latency, and throughput. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/image-72.png\" alt=\"HAProxy on Linux Server\" class=\"wp-image-13073\" srcset=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/image-72.png 1536w, https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/image-72-150x100.png 150w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/figure>\n\n\n\n<p>It routes client requests to healthy backend servers, protects apps from spikes, and enables seamless scaling with zero\u2011downtime reloads.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"core-capabilities-youll-use\"><strong>Core capabilities you\u2019ll use<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Layer 4 and Layer 7 load balancing (TCP, HTTP\/HTTPS).<\/li>\n\n\n\n<li>Flexible algorithms: roundrobin, leastconn, source (sticky), and more.<\/li>\n\n\n\n<li>Health checks, circuit breaking, and per\u2011server weights.<\/li>\n\n\n\n<li>SSL\/TLS termination, HTTP\/2, HSTS, and SNI routing.<\/li>\n\n\n\n<li>ACLs and routing logic (path, host, headers, Geo\/IP).<\/li>\n\n\n\n<li>Sticky sessions via cookies or source IP.<\/li>\n\n\n\n<li>Logging, stats page, and Prometheus\u2011friendly exporters.<\/li>\n\n\n\n<li>High availability with VRRP (keepalived) and stateful stick\u2011tables.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"how-haproxy-works-frontends-backends-acls\"><strong>How HAProxy works (frontends, backends, ACLs)<\/strong><\/h2>\n\n\n\n<p>HAProxy listens for client connections on <em>frontends<\/em> (e.g., ports 80\/443) and forwards requests to <em>backends<\/em> (your app servers). <em>ACLs<\/em> (Access Control Lists) let you route by hostname, URL path, methods, or headers\u2014for example, send <code>\/api<\/code> to one pool and <code>\/images<\/code> to another. Health checks continually verify which backends are safe to receive traffic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"install-haproxy-on-linux-ubuntu-debian-rhel-centos-rocky-alma\"><strong>Install HAProxy on Linux (Ubuntu\/Debian, RHEL\/CentOS\/Rocky\/Alma)<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"ubuntu-debian\"><strong>Ubuntu\/Debian<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install -y haproxy\nhaproxy -v\nsudo systemctl enable --now haproxy\nsudo systemctl status haproxy --no-pager<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"rhel-centos-almalinux-rocky-linux\"><strong>RHEL\/CentOS\/AlmaLinux\/Rocky Linux<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install -y haproxy   # or: sudo yum install -y haproxy\nhaproxy -v\nsudo systemctl enable --now haproxy\nsudo systemctl status haproxy --no-pager<\/code><\/pre>\n\n\n\n<p>Most distros ship a stable HAProxy. For the latest features (HTTP\/3, newer TLS, advanced stick\u2011tables), consider official repositories or building from source per the HAProxy documentation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"basic-haproxy-configuration-step-by-step\"><strong>Basic HAProxy Configuration (Step\u2011by\u2011Step)<\/strong><\/h2>\n\n\n\n<p>The main configuration file is usually at <code>\/etc\/haproxy\/haproxy.cfg<\/code>. Below is a production\u2011ready starting point that supports <a href=\"https:\/\/www.youstable.com\/blog\/redirect-http-to-https\/\">HTTP to HTTPS redirect<\/a>, HTTPS termination, health checks, sticky sessions, and a password\u2011protected stats page.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>global\n  log \/dev\/log local0\n  log \/dev\/log local1 notice\n  chroot \/var\/lib\/haproxy\n  user haproxy\n  group haproxy\n  daemon\n  maxconn 4000\n  tune.ssl.default-dh-param 2048\n\ndefaults\n  log     global\n  mode    http\n  option  httplog\n  option  dontlognull\n  timeout connect 5s\n  timeout client  30s\n  timeout server  30s\n  retries  3\n  option  http-keep-alive\n\n# HTTP frontend: redirect to HTTPS\nfrontend fe_http\n  bind *:80\n  http-request redirect scheme https code 301\n\n# HTTPS frontend with TLS termination and HSTS\nfrontend fe_https\n  bind *:443 ssl crt \/etc\/haproxy\/certs\/example.pem alpn h2,http\/1.1\n  http-response set-header Strict-Transport-Security \"max-age=31536000; includeSubDomains; preload\"\n  default_backend be_app\n\n# Backend with health checks and sticky sessions\nbackend be_app\n  balance roundrobin\n  option httpchk GET \/health\n  http-check expect status 200\n  cookie SRV insert indirect nocache\n  server app1 10.0.0.11:8080 check cookie s1\n  server app2 10.0.0.12:8080 check cookie s2\n\n# Stats dashboard\nlisten stats\n  bind :8404\n  stats enable\n  stats uri \/stats\n  stats auth admin:StrongPassword!<\/code><\/pre>\n\n\n\n<p>Replace example.pem with a full\u2011chain PEM that includes your <a href=\"https:\/\/www.youstable.com\/blog\/private-key-for-ssl-certificate\/\">certificate and private key<\/a>. If you\u2019re using Let\u2019s Encrypt, you can combine files or point directly to the issued PEM bundle.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"key-directives-explained\"><strong>Key directives explained<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>global<\/strong>: process\u2011wide settings (logging, user, maxconn).<\/li>\n\n\n\n<li><strong>defaults<\/strong>: base settings inherited by frontends\/backends (mode, timeouts).<\/li>\n\n\n\n<li><strong>frontend<\/strong>: binds to a client\u2011facing address\/port; applies ACLs and routing decisions.<\/li>\n\n\n\n<li><strong>backend<\/strong>: a pool of servers with a load\u2011balancing algorithm.<\/li>\n\n\n\n<li><strong>listen<\/strong>: combined frontend+backend section (commonly used for stats or TCP services).<\/li>\n\n\n\n<li><strong>ACLs<\/strong>: rules for routing\/denials based on path, host, headers, methods, IPs, and more.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"common-use-cases-for-haproxy-on-linux\"><strong>Common Use Cases for HAProxy on Linux<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"http-load-balancing-strategies\"><strong>HTTP load balancing strategies<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>roundrobin<\/strong>: even distribution; good default.<\/li>\n\n\n\n<li><strong>leastconn<\/strong>: favors backend with the fewest active connections; good for slow or stateful apps.<\/li>\n\n\n\n<li><strong>source<\/strong>: hashes client IP to keep them on the same server (simple stickiness when cookies aren\u2019t possible).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"ssl-termination-and-redirects\"><strong>SSL termination and redirects<\/strong><\/h2>\n\n\n\n<p>Terminate TLS at HAProxy to offload crypto from your app servers and manage certificates centrally. Redirect all HTTP to HTTPS for security and SEO. You can also pass TLS through if you need end\u2011to\u2011end encryption\u2014HAProxy supports both modes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"reverse-proxy-for-microservices-and-wordpress\"><strong>Reverse proxy for microservices and WordPress<\/strong><\/h2>\n\n\n\n<p>Use ACLs to route <code>api.example.com<\/code> to an API pool and <code>www.example.com<\/code> to a WordPress pool. For WordPress, enable sticky sessions only if plugins require them; otherwise, keep sessions stateless and share media via a CDN or NFS\/object storage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"security-observability-and-high-availability\"><strong>Security, Observability, and High Availability<\/strong><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"security-hardening\"><strong>Security hardening<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Run as the <code>haproxy<\/code> user, chroot to <code>\/var\/lib\/haproxy<\/code>, and keep file permissions tight.<\/li>\n\n\n\n<li>Use strong TLS (disable TLS 1.0\/1.1), set secure ciphers, enable HSTS, and keep OpenSSL updated.<\/li>\n\n\n\n<li>Hide version strings; never expose the stats page publicly without auth and IP allowlists.<\/li>\n\n\n\n<li>Rate\u2011limit abusive IPs with stick\u2011tables and ACLs.<\/li>\n\n\n\n<li>Restrict management ports with firewalls and security groups.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"example-simple-rate-limiting-with-stick-tables\"><strong>Example: simple rate limiting with stick\u2011tables<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>frontend fe_https\n  bind *:443 ssl crt \/etc\/haproxy\/certs\/example.pem\n  # Track connection rate per IP\n  stick-table type ip size 100k expire 10m store conn_rate(10s)\n  http-request track-sc0 src\n  acl too_fast sc0_conn_rate gt 100\n  http-request deny if too_fast\n  default_backend be_app<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"logging-and-monitoring\"><strong>Logging and monitoring<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable <strong>HTTP logs<\/strong> and ship to <code>rsyslog<\/code> or journald. Analyze with ELK\/Graylog.<\/li>\n\n\n\n<li>Use the <strong>stats page<\/strong> on port 8404 (password\u2011protected) for real\u2011time metrics.<\/li>\n\n\n\n<li>Export metrics via HAProxy\u2019s <strong>Prometheus exporter<\/strong> or parse logs for alerts.<\/li>\n\n\n\n<li>Trace errors with <code>journalctl -u haproxy -f<\/code> and the <code>haproxy -c<\/code> config check.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"high-availability-no-single-point-of-failure\"><strong>High availability (no single point of failure)<\/strong><\/h2>\n\n\n\n<p>Run two HAProxy nodes and float a virtual IP using <strong>keepalived (VRRP)<\/strong>. One node is master; the other takes over on failure. Use configuration management and synchronized certificates for fast failover. For zero\u2011downtime config changes, use <code>systemctl reload haproxy<\/code> after validating with <code>haproxy -c -f \/etc\/haproxy\/haproxy.cfg<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"performance-tuning-tips\"><strong>Performance tuning tips<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Match <strong>nbthread<\/strong> to CPU cores and consider <strong>cpu-map<\/strong> pinning.<\/li>\n\n\n\n<li>Raise <strong>maxconn<\/strong> carefully and tune kernel limits (<code>fs.file-max<\/code>, <code>somaxconn<\/code>).<\/li>\n\n\n\n<li>Use <strong>SO_REUSEPORT<\/strong> and modern schedulers; keep timeouts realistic to avoid stuck connections.<\/li>\n\n\n\n<li>Pick the right algorithm (<code>leastconn<\/code> for slow backends, <code>roundrobin<\/code> for general use).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"troubleshooting-haproxy-on-linux\"><strong>Troubleshooting HAProxy on Linux<\/strong><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"common-issues-and-quick-fixes\"><strong>Common issues and quick fixes<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cannot bind to port 80\/443<\/strong>: Another service is listening. Check with <code>ss -ltnp | grep :80<\/code>. Stop or change the conflicting service.<\/li>\n\n\n\n<li><strong>Backends always DOWN<\/strong>: Health check path\/status mismatch. Validate with <code>curl<\/code> from the HAProxy host to backend IPs; open firewalls.<\/li>\n\n\n\n<li><strong>TLS errors<\/strong>: Use a proper PEM bundle (key + cert + chain). Verify permissions and SNI configuration.<\/li>\n\n\n\n<li><strong>SELinux denials (RHEL)<\/strong>: Temporarily test with <code>setenforce 0<\/code>, then set booleans (e.g., <code>setsebool -P haproxy_connect_any 1<\/code>) instead of disabling SELinux.<\/li>\n\n\n\n<li><strong>Reload fails<\/strong>: Run <code>haproxy -c -f \/etc\/haproxy\/haproxy.cfg<\/code> to validate before <code>systemctl reload haproxy<\/code>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"helpful-commands\"><strong>Helpful commands<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Validate config\nsudo haproxy -c -f \/etc\/haproxy\/haproxy.cfg\n\n# Watch logs\nsudo journalctl -u haproxy -f\n\n# Check listeners\nss -ltnp | grep haproxy\n\n# Version &amp; build options (features compiled in)\nhaproxy -vv<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"haproxy-vs-nginx-vs-envoy-when-to-choose-what\"><strong>HAProxy vs NGINX vs Envoy: When to Choose What<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>HAProxy<\/strong>: Exceptional performance, mature L7 features, rich ACLs, stick\u2011tables, and robust health checks. Great for classic and modern web workloads.<\/li>\n\n\n\n<li><strong>NGINX<\/strong>: Strong web server + reverse proxy combo; great for static content and simple proxying. Advanced load\u2011balancing often requires NGINX Plus.<\/li>\n\n\n\n<li><strong>Envoy<\/strong>: Modern proxy focused on service meshes, HTTP\/2\/3, gRPC, and xDS control planes; ideal for cloud\u2011native microservices at scale.<\/li>\n<\/ul>\n\n\n\n<p>If your primary need is high\u2011performance load balancing with deep routing logic and proven stability, HAProxy is a safe default on Linux.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"real-world-tips-from-15plus-years-in-hosting\"><strong>Real World Tips from 15+ Years in Hosting<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Keep timeouts short but realistic; long timeouts mask problems and tie up connections.<\/li>\n\n\n\n<li>Prefer health endpoints like <code>\/health<\/code> that perform a lightweight DB\/cache check.<\/li>\n\n\n\n<li>Implement canary backends with lower weight for safe rollouts.<\/li>\n\n\n\n<li>Use per\u2011environment configs (dev\/stage\/prod) and test with <code>-c<\/code> before pushing changes.<\/li>\n\n\n\n<li>Automate certificate renewals (e.g., Certbot hooks) and reload HAProxy gracefully.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"faqs-haproxy-on-linux-server\"><strong>FAQ&#8217;s &#8211; HAProxy on Linux Server<\/strong><\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1765617392948\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"1-what-is-haproxy-used-for-on-a-linux-server\"><strong>1. What is HAProxy used for on a Linux server?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>HAProxy is a <a href=\"https:\/\/www.youstable.com\/blog\/install-load-balancer-on-linux\/\">load balancer and reverse proxy that distributes client traffic across multiple backend servers<\/a>. On Linux, it improves availability, performance, and security for websites, APIs, and microservices by providing health checks, SSL termination, routing rules, and observability.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765617402848\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"2-how-do-i-install-haproxy-on-ubuntu\"><strong>2. How do I install HAProxy on Ubuntu?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Run <code>sudo apt update &amp;&amp; sudo apt <a href=\"https:\/\/www.youstable.com\/blog\/install-haproxy-on-linux\/\">install -y haproxy<\/a><\/code>, then <code>sudo systemctl enable --now haproxy<\/code>. Verify with <code>haproxy -v<\/code> and adjust <code>\/etc\/haproxy\/haproxy.cfg<\/code>. Validate config using <code>haproxy -c -f \/etc\/haproxy\/haproxy.cfg<\/code> before reloading.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765617411731\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"3-can-haproxy-terminate-ssl-and-redirect-http-to-https\"><strong>3. Can HAProxy terminate SSL and redirect HTTP to HTTPS?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. Bind HTTPS with your certificate (PEM) and configure a redirect in the HTTP frontend. You can also enforce HSTS and HTTP\/2. For end\u2011to\u2011end encryption, use TCP mode or re\u2011encrypt to backends with their own certificates.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765617420893\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"4-how-do-i-enable-sticky-sessions-in-haproxy\"><strong>4. How do I enable sticky sessions in HAProxy?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Add a cookie directive in the backend (e.g., <code>cookie SRV insert<\/code>) and assign consistent cookies to each server (e.g., <code>server app1 ... cookie s1<\/code>). Alternatively, use <code>balance source<\/code> for IP\u2011based stickiness when cookies aren\u2019t available.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765617428566\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"5-is-haproxy-better-than-nginx-for-load-balancing\"><strong>5. Is HAProxy better than NGINX for load balancing?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Both are excellent. HAProxy excels in advanced L7 load balancing, ACLs, stick\u2011tables, and health checks; NGINX combines a web server with robust proxying. <\/p>\n<p>For specialized load balancing and high throughput, HAProxy is often preferred on Linux; for serving static files plus basic proxying, NGINX is strong.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>HAProxy on Linux server is an open\u2011source, high\u2011performance load balancer and reverse proxy that distributes traffic across multiple backend servers [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":13829,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"iawp_total_views":1,"footnotes":""},"categories":[350,1195],"tags":[],"class_list":["post-12723","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledgebase","category-blogging"],"acf":[],"featured_image_src":"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-is-HAProxy-on-Linux-Server.jpg","author_info":{"display_name":"Sanjeet Chauhan","author_link":"https:\/\/www.youstable.com\/blog\/author\/sanjeet"},"_links":{"self":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/comments?post=12723"}],"version-history":[{"count":8,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12723\/revisions"}],"predecessor-version":[{"id":13831,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/12723\/revisions\/13831"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media\/13829"}],"wp:attachment":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media?parent=12723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/categories?post=12723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/tags?post=12723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}