{"id":13609,"date":"2026-01-07T09:42:01","date_gmt":"2026-01-07T04:12:01","guid":{"rendered":"https:\/\/www.youstable.com\/blog\/?p=13609"},"modified":"2026-01-07T09:42:03","modified_gmt":"2026-01-07T04:12:03","slug":"fix-haproxy-on-linux","status":"publish","type":"post","link":"https:\/\/www.youstable.com\/blog\/fix-haproxy-on-linux","title":{"rendered":"How to Fix HAProxy on Linux Server in 2026?"},"content":{"rendered":"\n<p><strong>To fix HAProxy on a Linux server<\/strong>, start by checking service status and logs, validate the configuration with <code>haproxy -c -f<\/code>, resolve port binding conflicts, and correct firewall\/SELinux rules. <\/p>\n\n\n\n<p>Then verify SSL certificates, backend health checks, and resource limits before performing a graceful reload. This structured approach resolves most HAProxy outages quickly and safely.<\/p>\n\n\n\n<p>If you\u2019re wondering how to fix HAProxy on Linux Server without risking downtime, you\u2019re in the right place. HAProxy is a high\u2011performance <strong>TCP\/HTTP<\/strong> load balancer, but minor misconfigurations, port conflicts, or OS security policies can break it.<\/p>\n\n\n\n<p>Below is a practical, step by step troubleshooting runbook based on real-world hosting experience.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"quick-fix-checklist-use-this-first\"><strong>Quick Fix Checklist (Use This First)<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Confirm HAProxy service state and read logs<\/li>\n\n\n\n<li>Validate configuration syntax and includes<\/li>\n\n\n\n<li>Fix port binding conflicts and permissions<\/li>\n\n\n\n<li>Open firewall ports and set SELinux labels\/booleans<\/li>\n\n\n\n<li>Verify TLS certificate files and chain<\/li>\n\n\n\n<li>Check backend health checks, DNS\/resolvers<\/li>\n\n\n\n<li>Review resource limits and kernel\/network tuning<\/li>\n\n\n\n<li>Reload gracefully; avoid full restarts on busy systems<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"how-to-fix-haproxy-on-linux-server-step-by-step\"><strong>How to Fix HAProxy on Linux Server<\/strong> &#8211; (<strong>Step by Step<\/strong>)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-1-check-service-status-and-logs\"><strong>Step 1: Check Service Status and Logs<\/strong><\/h3>\n\n\n\n<p>Start with systemd and the journal. Most outages reveal themselves here.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Service status\nsudo systemctl status haproxy\n\n# Recent logs (live)\nsudo journalctl -u haproxy -e -f\n\n# If rsyslog is used for HAProxy logs:\n# Look for \/var\/log\/haproxy.log or \/var\/log\/syslog\/messages depending on distro\nsudo grep -i haproxy \/var\/log\/* -n --color<\/code><\/pre>\n\n\n\n<p>On Debian\/Ubuntu, ensure the service is enabled:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo sed -i 's\/ENABLED=.*\/ENABLED=1\/' \/etc\/default\/haproxy\nsudo systemctl enable --now haproxy<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-2-validate-configuration-syntax-before-restarting\"><strong>Step 2: Validate Configuration Syntax (Before Restarting)<\/strong><\/h3>\n\n\n\n<p>A single typo can keep HAProxy from starting. Always run a syntax check:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo haproxy -c -f \/etc\/haproxy\/haproxy.cfg\n\n# If you use split configs or includes:\nsudo haproxy -c -f \/etc\/haproxy\/haproxy.cfg -f \/etc\/haproxy\/conf.d<\/code><\/pre>\n\n\n\n<p>Common issues include misplaced ACLs, wrong keywords for your HAProxy version, or incorrect indentation within <code>frontend<\/code>, <code>backend<\/code>, and <code>listen<\/code> stanzas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-3-fix-port-binding-and-permission-problems\"><strong>Step 3: Fix Port Binding and Permission Problems<\/strong><\/h3>\n\n\n\n<p>If you see \u201ccannot bind socket\u201d or the service won\u2019t start, confirm which process owns the port:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Check listeners\nsudo ss -lntp | grep -E ':80|:443|:8443'\n\n# Or\nsudo lsof -i :80 -i :443<\/code><\/pre>\n\n\n\n<p>Resolve conflicts by stopping\/removing other services (e.g., Nginx\/Apache) or changing HAProxy\u2019s bind ports. Binding to ports &lt;1024 without root requires capability:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Allow haproxy binary to bind low ports without running as root\nsudo setcap 'cap_net_bind_service=+ep' \/usr\/sbin\/haproxy<\/code><\/pre>\n\n\n\n<p>If HAProxy runs in a chroot, ensure sockets\/certs exist inside the chroot path and permissions allow the <code>haproxy<\/code> user to read them.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-4-open-firewall-and-set-selinux-correctly\"><strong>Step 4: Open Firewall and Set SELinux Correctly<\/strong><\/h3>\n\n\n\n<p>Firewalls commonly block 80\/443 or custom ports.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># firewalld\nsudo firewall-cmd --permanent --add-service=http\nsudo firewall-cmd --permanent --add-service=https\nsudo firewall-cmd --reload\n\n# UFW (Ubuntu)\nsudo ufw allow 80\/tcp\nsudo ufw allow 443\/tcp\nsudo ufw reload<\/code><\/pre>\n\n\n\n<p>On SELinux-enabled systems (RHEL\/Rocky\/CentOS\/Fedora), label ports and allow outbound connects to backends:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Permit HAProxy to connect to any port (if needed)\nsudo setsebool -P haproxy_connect_any on\n\n# Label custom frontend ports (example 8443)\nsudo semanage port -a -t http_port_t -p tcp 8443 2&gt;\/dev\/null || \\\nsudo semanage port -m -t http_port_t -p tcp 8443<\/code><\/pre>\n\n\n\n<p>Avoid using <code>setenforce 0<\/code> in production unless testing. Use proper contexts and booleans instead.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-5-repair-tls-ssl-issues\"><strong>Step 5<\/strong>: <strong>Repair TLS\/SSL Issues<\/strong><\/h3>\n\n\n\n<p>Handshake failures often come from wrong certificate format or file permissions. HAProxy expects PEM bundles (key + cert + chain) in order.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Combine fullchain and privkey for Let's Encrypt\nsudo bash -c 'cat \/etc\/letsencrypt\/live\/example.com\/fullchain.pem \/etc\/letsencrypt\/live\/example.com\/privkey.pem &gt; \/etc\/haproxy\/certs\/example.com.pem'\nsudo chmod 640 \/etc\/haproxy\/certs\/example.com.pem\nsudo chown root:haproxy \/etc\/haproxy\/certs\/example.com.pem\n\n# Validate file path in haproxy.cfg\nbind :443 ssl crt \/etc\/haproxy\/certs\/example.com.pem alpn h2,http\/1.1<\/code><\/pre>\n\n\n\n<p>If browsers show \u201cincomplete chain,\u201d include the full chain. For modern performance and security, enable ALPN and strong ciphers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-6-verify-backend-health-checks-and-dns\"><strong>Step 6: Verify Backend Health Checks and DNS<\/strong><\/h3>\n\n\n\n<p>Down backends cause 503s. Confirm targets are reachable and checks are correct:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Example backend with health checks\nbackend app\n  mode http\n  option httpchk GET \/health\n  http-check expect status 200\n  server app1 10.0.0.11:8080 check\n  server app2 10.0.0.12:8080 check<\/code><\/pre>\n\n\n\n<p>If you rely on DNS, use a <code>resolvers<\/code> section and set <code>resolve-prefer ipv4<\/code> if needed. Ensure the system\u2019s DNS works and isn\u2019t blocked by firewall or SELinux.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>resolvers dns1\n  nameserver ns1 1.1.1.1:53\n  hold valid 10s\n\nserver app1 app.internal:8080 check resolvers dns1 resolve-prefer ipv4<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-7-address-resource-limits-and-performance\"><strong>Step 7: Address Resource Limits and Performance<\/strong><\/h3>\n\n\n\n<p>Connection spikes may hit system limits and trigger 503s or queueing. Check and raise limits:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Current limits for HAProxy service\nsystemctl show haproxy | grep -i limit\n\n# Increase file descriptors\necho 'DefaultLimitNOFILE=200000' | sudo tee \/etc\/systemd\/system.conf.d\/99-fd.conf\nsudo systemctl daemon-reload\nsudo systemctl restart haproxy<\/code><\/pre>\n\n\n\n<p>Tune <a href=\"https:\/\/www.youstable.com\/blog\/optimize-haproxy-on-linux\/\">HAProxy for your CPU and traffic<\/a> pattern:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>global\n  nbthread  auto\n  tune.maxaccept 256\n  maxconn 100000<\/code><\/pre>\n\n\n\n<p>Also consider kernel parameters for busy sites (ephemeral ports, TCP backlog, TIME-WAIT reuse) and ensure adequate RAM\/CPU to avoid swapping.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-8-reload-gracefully-zero-downtime\"><strong>Step 8: Reload Gracefully (Zero-Downtime)<\/strong><\/h3>\n\n\n\n<p>Don\u2019t hard restart during production traffic. Use a graceful reload to keep connections alive:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Preferred\nsudo systemctl reload haproxy\n\n# Or the native method (passes old PIDs for drain)\nsudo haproxy -f \/etc\/haproxy\/haproxy.cfg -c &amp;&amp; \\\nsudo haproxy -f \/etc\/haproxy\/haproxy.cfg -sf $(pidof haproxy)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"step-9-enable-logs-and-observability\"><strong>Step 9<\/strong>: <strong>Enable Logs and Observability<\/strong><\/h3>\n\n\n\n<p>Logging is essential for ongoing troubleshooting. Example rsyslog config:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \/etc\/rsyslog.d\/49-haproxy.conf\n$template HAPFormat,\"%msg%\\n\"\nif ($programname == \"haproxy\") then \/var\/log\/haproxy.log;HAPFormat\n&amp; stop\n\n# Then restart rsyslog and reload haproxy\nsudo systemctl restart rsyslog\nsudo systemctl reload haproxy<\/code><\/pre>\n\n\n\n<p>Expose the HAProxy stats socket and\/or HTTP stats page for visibility.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>global\n  stats socket \/run\/haproxy\/admin.sock mode 660 level admin\n  stats timeout 30s\n\nlisten stats\n  bind :8404\n  stats enable\n  stats uri \/stats\n  stats auth admin:strongpassword<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"minimal-known-good-haproxy-config-reference\"><strong>Minimal, Known-Good HAProxy Config (Reference)<\/strong><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>global\n  log \/dev\/log local0\n  maxconn 10000\n  daemon\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 fe_https\n  bind :443 ssl crt \/etc\/haproxy\/certs\/example.com.pem alpn h2,http\/1.1\n  mode http\n  http-request set-header X-Forwarded-Proto https\n  default_backend be_app\n\nbackend be_app\n  mode http\n  option httpchk GET \/health\n  http-check expect status 200\n  server app1 10.0.0.11:8080 check\n  server app2 10.0.0.12:8080 check<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"common-haproxy-errors-and-how-to-fix-them\"><strong>Common HAProxy Errors and How to Fix Them<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u201cCannot bind socket\u201d:<\/strong> Another service is using the port; stop it or change ports. On privileged ports, set <code>cap_net_bind_service<\/code>.<\/li>\n\n\n\n<li><strong>\u201cProxy \u2026 stopped\u201d on start:<\/strong> Config syntax error; run <code>haproxy -c -f<\/code> and correct the reported line.<\/li>\n\n\n\n<li><strong>503 <\/strong><a href=\"https:\/\/www.youstable.com\/blog\/fix-503-service-temporarily-unavailable\/\">Service Unavailable:<\/a> Backends failing health checks; verify app health endpoints, firewall to backends, and DNS.<\/li>\n\n\n\n<li><strong>SSL handshake failure:<\/strong> Wrong PEM order or missing intermediate chain; rebuild PEM and fix permissions.<\/li>\n\n\n\n<li><strong>\u201cPermission denied\u201d on sockets\/certs:<\/strong> Adjust file ownership to <code>root:haproxy<\/code> and mode 640; confirm chroot paths.<\/li>\n\n\n\n<li><strong>High latency\/queueing:<\/strong> Increase <code>maxconn<\/code>, OS file descriptors, and tune kernel net parameters.<\/li>\n\n\n\n<li><strong>DNS resolution errors:<\/strong> Add <code>resolvers<\/code> block and ensure outbound DNS allowed in firewall\/SELinux.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"prevent-outages-best-practices\"><strong>Prevent Outages: Best Practices<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Version pinning and staged upgrades across environments<\/li>\n\n\n\n<li>Config management (Ansible\/Chef\/Terraform) with pre-commit <code>haproxy -c<\/code> checks<\/li>\n\n\n\n<li>Blue\/green or canary deployment with per-backend weights<\/li>\n\n\n\n<li>Persistent observability: stats, Prometheus exporters, log aggregation<\/li>\n\n\n\n<li>Backups of <code>\/etc\/haproxy<\/code> and certificates, plus runbooks and on-call procedures<\/li>\n\n\n\n<li>Graceful reloads during low-traffic windows<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"when-to-get-help-and-how-youstable-can-assist\"><strong>When to Get Help (And How YouStable Can Assist)<\/strong><\/h2>\n\n\n\n<p>If you run mission-critical workloads, a misstep can cause real downtime. <a href=\"https:\/\/www.youstable.com\/blog\/benefits-of-fully-managed-dedicated-server\/\">YouStable\u2019s managed hosting<\/a> team handles HAProxy design, hardening, and 24\/7 monitoring for Linux servers. We implement production-grade configs, observability, and zero-downtime deploys\u2014so you can focus on your app while we keep traffic flowing securely.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" class=\"wp-block-heading\" id=\"faqs-fixing-haproxy-on-linux-server\"><strong>FAQ&#8217;s &#8211; Fixing HAProxy on Linux<\/strong> Server<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1765874806599\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"1-how-do-i-restart-or-reload-haproxy-safely-on-linux\">1. <strong>How do I restart or reload HAProxy safely on Linux?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Use <code>systemctl reload haproxy<\/code> to apply config changes without dropping connections. For manual control, validate with <code>haproxy -c -f<\/code> then run <code>haproxy -f \/etc\/haproxy\/haproxy.cfg -sf $(pidof haproxy)<\/code> to perform a graceful handover.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765874816702\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"2-where-are-haproxy-logs-stored-on-linux\">2. <strong>Where are HAProxy logs stored on Linux?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>With systemd, use <code>journalctl -u haproxy<\/code>. If rsyslog is configured, logs typically go to <code>\/var\/log\/haproxy.log<\/code> or the distro\u2019s main log file. Ensure the <code>log<\/code> directive exists in <code>global\/defaults<\/code> and that rsyslog is set to accept HAProxy messages.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765874825861\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"3-how-do-i-fix-cannot-bind-socket-errors-in-haproxy\">3. <strong>How do I fix \u201ccannot bind socket\u201d errors in HAProxy?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Check which process is using the port with <code>ss -lntp<\/code> or <code>lsof<\/code>, stop or reconfigure conflicting services, and grant HAProxy the <code>cap_net_bind_service<\/code> capability if binding to ports &lt;1024 while not running as root.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765874834339\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"4-why-are-my-haproxy-backends-always-down\">4. <strong>Why are my HAProxy backends always down?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Common causes include wrong health check paths, firewall rules blocking backend ports, DNS failures, or SELinux denying outbound connects. Verify health endpoints return 200, open the necessary ports, and configure a <code>resolvers<\/code> section if using DNS.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1765874842867\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \" class=\"rank-math-question \" id=\"5-how-can-i-enable-http-2-and-strong-tls-in-haproxy\">5. <strong>How can I enable HTTP\/2 and strong TLS in HAProxy?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Use <code>alpn h2,http\/1.1<\/code> on your TLS bind line and ensure your PEM contains cert + key + full chain. Update ciphers to modern suites, keep HAProxy updated, and test with tools like <code>openssl s_client<\/code> and SSL Labs to validate.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>To fix HAProxy on a Linux server, start by checking service status and logs, validate the configuration with haproxy -c [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":17159,"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-13609","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-Fix-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\/13609","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=13609"}],"version-history":[{"count":5,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/13609\/revisions"}],"predecessor-version":[{"id":17161,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/posts\/13609\/revisions\/17161"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media\/17159"}],"wp:attachment":[{"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/media?parent=13609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/categories?post=13609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.youstable.com\/blog\/wp-json\/wp\/v2\/tags?post=13609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}