{"id":14228,"date":"2025-12-27T12:11:32","date_gmt":"2025-12-27T06:41:32","guid":{"rendered":"https:\/\/www.youstable.com\/blog\/?p=14228"},"modified":"2025-12-27T12:11:34","modified_gmt":"2025-12-27T06:41:34","slug":"create-haproxy-on-linux","status":"publish","type":"post","link":"https:\/\/www.youstable.com\/blog\/create-haproxy-on-linux","title":{"rendered":"How to Create HAProxy on Linux Server for Load Balancing"},"content":{"rendered":"\n<p><strong>To create HAProxy on a Linux server<\/strong>, install HAProxy via your distro\u2019s package manager, define a frontend on ports 80\/443 and backends for your app servers in \/etc\/haproxy\/haproxy.cfg, enable health checks, start and enable the service with systemd, open your firewall, then test routing and SSL termination. See the step-by-step guide below.<\/p>\n\n\n\n<p>If you\u2019re searching for how to create HAProxy on Linux Server, this guide walks you through installation, configuration, SSL termination, sticky sessions, ACLs, and troubleshooting. Whether you run Ubuntu, Debian, or RHEL\/CentOS\/AlmaLinux, you\u2019ll learn a production-ready setup that scales web traffic reliably and securely.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"what-is-haproxy-and-why-use-it\"><strong>What is HAProxy and Why Use it?<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\"><div class=\"wp-block-media-text__content\">\n<p>HAProxy is a high-performance, open-source TCP\/HTTP <a href=\"https:\/\/www.youstable.com\/blog\/install-load-balancer-on-linux\/\">load balancer<\/a> and reverse proxy. It distributes traffic across multiple backend servers, improves uptime with health checks, supports sticky sessions, rate limiting, SSL\/TLS termination, HTTP\/2, and granular routing rules. <\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1168\" height=\"784\" src=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-Is-HAProxy-and-Why-Use-It.png\" alt=\"What Is HAProxy and Why Use It?\" class=\"wp-image-14652 size-full\" srcset=\"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-Is-HAProxy-and-Why-Use-It.png 1168w, https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/What-Is-HAProxy-and-Why-Use-It-150x101.png 150w\" sizes=\"auto, (max-width: 1168px) 100vw, 1168px\" \/><\/figure><\/div>\n\n\n\n<p>It\u2019s a go-to choice for web apps, APIs, and microservices needing scalability and fault tolerance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"prerequisites\"><strong>Prerequisites<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A Linux server (Ubuntu\/Debian or RHEL\/CentOS\/AlmaLinux) with sudo access<\/li>\n\n\n\n<li>Domain name (recommended) pointing to the HAProxy server\u2019s IP<\/li>\n\n\n\n<li>At least two backend application servers (e.g., 10.0.0.10:80 and 10.0.0.11:80)<\/li>\n\n\n\n<li><strong>Open ports:<\/strong> 80 (HTTP), 443 (HTTPS) on the <a href=\"https:\/\/www.youstable.com\/blog\/configure-load-balancer-on-linux\/\">load balancer<\/a><\/li>\n\n\n\n<li>Basic command-line familiarity<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-by-step-install-haproxy-on-linux\"><strong>Step-by-Step: Install HAProxy on Linux<\/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  # verify version<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"rhel-centos-almalinux-rocky\"><strong>RHEL\/CentOS\/AlmaLinux\/Rocky<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install -y haproxy\nhaproxy -v  # verify version<\/code><\/pre>\n\n\n\n<p>Installing from official repos is sufficient for most use cases. For the latest features, consider the HAProxy Enterprise or community PPA\/source builds, but stick to your organization\u2019s patching policy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"create-a-basic-haproxy-configuration\"><strong>Create a Basic HAProxy Configuration<\/strong><\/h2>\n\n\n\n<p>We\u2019ll build a clean haproxy.cfg with global and defaults sections, an HTTP frontend, and a backend pool with health checks. Replace IPs, domains, and health endpoints as needed.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo cp \/etc\/haproxy\/haproxy.cfg \/etc\/haproxy\/haproxy.cfg.bak\nsudo nano \/etc\/haproxy\/haproxy.cfg<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>global\n    log \/dev\/log local0\n    log \/dev\/log local1 notice\n    user haproxy\n    group haproxy\n    daemon\n    maxconn 4096\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\nfrontend http_in\n    bind *:80\n    option http-server-close\n    default_backend app_backend\n\nbackend app_backend\n    balance roundrobin\n    option httpchk GET \/health\n    http-check expect status 200\n    server app1 10.0.0.10:80 check\n    server app2 10.0.0.11:80 check<\/code><\/pre>\n\n\n\n<p>This configuration distributes HTTP requests across two servers using round-robin and marks unhealthy instances \u201cdown\u201d. Make sure your application exposes a lightweight \/health endpoint that returns HTTP 200.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"start-enable-and-open-firewall\"><strong>Start, Enable, and Open Firewall<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Validate config\nsudo haproxy -c -f \/etc\/haproxy\/haproxy.cfg\n\n# Start and enable\nsudo systemctl enable --now haproxy\n\n# Ubuntu\/Debian with UFW\nsudo ufw allow 80\/tcp\nsudo ufw allow 443\/tcp\n\n# RHEL\/CentOS family with firewalld\nsudo firewall-cmd --permanent --add-service=http\nsudo firewall-cmd --permanent --add-service=https\nsudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<p>Visit http:\/\/YOUR_DOMAIN or http:\/\/YOUR_IP to confirm traffic is reaching your backend servers. Tail logs to verify requests and health checks.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>journalctl -u haproxy -f<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"add-https-ssl-tls-termination-with-lets-encrypt\"><strong>Add HTTPS: SSL\/TLS Termination with Let\u2019s Encrypt<\/strong><\/h2>\n\n\n\n<p>Terminate SSL at HAProxy to offload crypto from your app servers. We\u2019ll obtain a certificate with Certbot, combine cert and key into a PEM, and configure a 301 <a href=\"https:\/\/www.youstable.com\/blog\/redirect-http-to-https\/\">redirect from HTTP<\/a> to HTTPS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"1-get-a-lets-encrypt-certificate\"><strong>1) Get a Let\u2019s Encrypt Certificate<\/strong><\/h3>\n\n\n\n<p>Point your domain\u2019s A record to the HAProxy server. Temporarily stop HAProxy on port 80, then run Certbot in standalone mode.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl stop haproxy\nsudo apt install -y certbot || sudo dnf install -y certbot\nsudo certbot certonly --standalone -d example.com -d www.example.com\n# Certificates will be under \/etc\/letsencrypt\/live\/example.com\/<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"2-create-a-pem-bundle-for-haproxy\"><strong>2) Create a PEM Bundle for HAProxy<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/etc\/haproxy\/certs\nDOMAIN=example.com\nsudo bash -c 'cat \/etc\/letsencrypt\/live\/'\"$DOMAIN\"'\/fullchain.pem \/etc\/letsencrypt\/live\/'\"$DOMAIN\"'\/privkey.pem &gt; \/etc\/haproxy\/certs\/'\"$DOMAIN\"'.pem'\nsudo chmod 600 \/etc\/haproxy\/certs\/\"$DOMAIN\".pem<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"3-update-haproxy-cfg-for-https-and-redirect\"><strong>3) Update haproxy.cfg for HTTPS and Redirect<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>frontend http_in\n    bind *:80\n    http-request redirect scheme https code 301 unless { ssl_fc }\n\nfrontend https_in\n    bind *:443 ssl crt \/etc\/haproxy\/certs\/example.com.pem alpn h2,http\/1.1\n    http-response set-header Strict-Transport-Security \"max-age=31536000; includeSubDomains; preload\"\n    default_backend app_backend<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># Restart HAProxy\nsudo systemctl start haproxy\nsudo systemctl reload haproxy<\/code><\/pre>\n\n\n\n<p>Automate certificate renewals with a post-renewal hook that rebuilds the PEM and reloads HAProxy.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \/etc\/letsencrypt\/renewal-hooks\/deploy\/haproxy-renew.sh\n#!\/usr\/bin\/env bash\nDOMAIN=example.com\ncat \/etc\/letsencrypt\/live\/$DOMAIN\/fullchain.pem \/etc\/letsencrypt\/live\/$DOMAIN\/privkey.pem &gt; \/etc\/haproxy\/certs\/$DOMAIN.pem\nchmod 600 \/etc\/haproxy\/certs\/$DOMAIN.pem\nsystemctl reload haproxy\n# Make executable\nsudo chmod +x \/etc\/letsencrypt\/renewal-hooks\/deploy\/haproxy-renew.sh<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"useful-production-features-optional\"><strong>Useful Production Features (Optional)<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"sticky-sessions-session-persistence\"><strong>Sticky Sessions (Session Persistence)<\/strong><\/h3>\n\n\n\n<p>Keep a client bound to the same server (helpful for stateful apps).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>backend app_backend\n    balance roundrobin\n    cookie SRV insert indirect nocache\n    option httpchk GET \/health\n    server app1 10.0.0.10:80 check cookie s1\n    server app2 10.0.0.11:80 check cookie s2<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"path-host-based-routing-with-acls\"><strong>Path\/Host-Based Routing with ACLs<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>frontend https_in\n    bind *:443 ssl crt \/etc\/haproxy\/certs\/example.com.pem\n    acl host_api hdr(host) -i api.example.com\n    acl path_admin path_beg -i \/admin\n    use_backend api_backend if host_api\n    http-request deny if path_admin !{ src 192.168.1.0\/24 }\n    default_backend app_backend\n\nbackend api_backend\n    balance leastconn\n    server api1 10.0.0.20:8080 check\n    server api2 10.0.0.21:8080 check<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"rate-limiting-and-basic-ddos-guard\"><strong>Rate Limiting and Basic DDoS Guard<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>frontend https_in\n    bind *:443 ssl crt \/etc\/haproxy\/certs\/example.com.pem\n    stick-table type ip size 100k expire 10m store http_req_rate(10s)\n    http-request track-sc0 src\n    http-request deny status 429 if { sc_http_req_rate(0) gt 100 }\n    default_backend app_backend<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"stats-and-health-visibility\"><strong>Stats and Health Visibility<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>listen stats\n    bind :8404\n    stats enable\n    stats uri \/stats\n    stats refresh 10s\n    stats auth admin:StrongPasswordHere<\/code><\/pre>\n\n\n\n<p>Visit http:\/\/YOUR_DOMAIN:8404\/stats to view connections, backend states, and health.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"testing-and-verification\"><strong>Testing and Verification<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Connectivity:<\/strong> curl -I http:\/\/YOUR_DOMAIN and curl -I https:\/\/YOUR_DOMAIN<\/li>\n\n\n\n<li><strong>Routing:<\/strong> Shut down app1 to confirm failover to app2<\/li>\n\n\n\n<li><strong>Health checks:<\/strong> Watch journalctl -u haproxy -f for server UP\/DOWN<\/li>\n\n\n\n<li><strong>SSL:<\/strong> Qualify with an SSL scanner (A+ target) and confirm HSTS header<\/li>\n\n\n\n<li><strong>Performance:<\/strong> ApacheBench, wrk, or k6 on a staging environment<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"common-pitfalls-and-fixes\"><strong>Common Pitfalls and Fixes<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Port in use:<\/strong> Another service may hold 80\/443. Run sudo ss -ltnp | grep -E &#8216;:80|:443&#8217; and stop\/disable the conflict.<\/li>\n\n\n\n<li><strong>SELinux (RHEL-based):<\/strong> Allow outbound connections to any port with sudo setsebool -P haproxy_connect_any 1 or properly label ports with semanage.<\/li>\n\n\n\n<li><strong>Firewall closed:<\/strong> Ensure ufw or firewalld allows http\/https services.<\/li>\n\n\n\n<li><strong>Bad health endpoint:<\/strong> Make \/health fast, unauthenticated, and return 200 OK.<\/li>\n\n\n\n<li><strong>Log visibility: <\/strong>If \/var\/log is empty, use journalctl, or enable rsyslog for local0\/local1 if desired.<\/li>\n<\/ul>\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>Right-size maxconn (global and per-frontend\/backend) to match server resources.<\/li>\n\n\n\n<li>Use leastconn for uneven request times; roundrobin for uniform workloads.<\/li>\n\n\n\n<li>Enable HTTP\/2 on TLS frontends with alpn h2,http\/1.1 for better multiplexing.<\/li>\n\n\n\n<li><strong>Keep timeouts realistic:<\/strong> too high piles up sockets, too low drops slow clients.<\/li>\n\n\n\n<li>Offload TLS at HAProxy and keep backend traffic over a private network.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"when-to-choose-managed-haproxy-save-time\"><strong>When to Choose Managed HAProxy (Save Time)<\/strong><\/h2>\n\n\n\n<p>If you prefer not to manage certificates, patches, and failover, a managed <a href=\"https:\/\/www.youstable.com\/blog\/use-load-balancer-on-linux\/\">load balancer<\/a> or a fully managed VPS can help. At YouStable, our engineers can provision HAProxy on performance-tuned VPS or cloud instances, set up SSL automation, and harden your stack\u2014so you focus on your app, not the plumbing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"frequently-asked-questions\"><strong>Frequently Asked Questions<\/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-1765954872886\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-install-and-configure-haproxy-on-ubuntu-quickly\"><strong>How do I install and configure HAProxy on Ubuntu quickly?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Run sudo apt update &amp;&amp; sudo apt install -y haproxy, then edit \/etc\/haproxy\/haproxy.cfg to add a frontend on port 80 or 443 and a backend with your app servers. Validate with haproxy -c -f \/etc\/haproxy\/haproxy.cfg, enable with systemctl enable &#8211;now haproxy, and open firewall ports.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765954941963\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"whats-the-difference-between-a-reverse-proxy-and-a-load-balancer-in-haproxy\"><strong>What\u2019s the difference between a reverse proxy and a load balancer in HAProxy?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>As a reverse proxy, HAProxy sits in front of one application origin and handles TLS, caching (via backends\/servers), and routing. As a load balancer, it distributes traffic across multiple origins, applying algorithms (roundrobin, leastconn), health checks, and failover. HAProxy can perform both roles simultaneously.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765954956833\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-enable-sticky-sessions-in-haproxy\"><strong>How do I enable sticky sessions in HAProxy?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Add cookie SRV insert in the backend and set a unique cookie per server (cookie s1, cookie s2). Browsers will send the cookie back and HAProxy will route to the same server, improving session persistence for stateful apps like older PHP or Java stacks.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765954972652\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"can-haproxy-handle-https-with-lets-encrypt-automatically\"><strong>Can HAProxy handle HTTPS with Let\u2019s Encrypt automatically?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes, Use Certbot to obtain certificates and concatenate fullchain.pem + privkey.pem into a single .pem for HAProxy. Add a renewal hook to rebuild the PEM and reload HAProxy after certbot renew. This delivers near-hands-free SSL management.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765954990872\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"how-do-i-monitor-haproxy-health-and-performance\"><strong>How do I monitor HAProxy health and performance?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Enable the built-in stats page on a separate port, ship logs via journald\/rsyslog, and integrate Prometheus\/Grafana using an HAProxy exporter. Watch key metrics: backend up\/down, response times, request rates, retries, and errors to catch issues early<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>To create HAProxy on a Linux server, install HAProxy via your distro\u2019s package manager, define a frontend on ports 80\/443 [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":16354,"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":""}},"footnotes":""},"categories":[350],"tags":[],"class_list":["post-14228","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-knowledgebase"],"acf":[],"featured_image_src":"https:\/\/www.youstable.com\/blog\/wp-content\/uploads\/2025\/12\/How-to-Create-HAProxy-on-Linux-Server-for-Load-Balancing.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\/14228","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=14228"}],"version-history":[{"count":6,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/14228\/revisions"}],"predecessor-version":[{"id":16355,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/14228\/revisions\/16355"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media\/16354"}],"wp:attachment":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media?parent=14228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/categories?post=14228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/tags?post=14228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}