All checks were successful
Deploy Static Site / deploy (push) Successful in 6m6s
260 lines
22 KiB
HTML
260 lines
22 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
|
||
<head>
|
||
<title>Install HAProxy </title>
|
||
<meta name="generator" content="Help+Manual" />
|
||
<meta name="keywords" content="" />
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<meta name="description" content="HAProxy is a tool for ensuring high availability and load balancing. In the BRIX system, HAProxy is employed to build a resilient architecture for organizing a highly available..." />
|
||
<meta name="picture" content="" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:title" content="Full documentation for BRIX365 platform. Low-code developer guide. User guide. Admin guide. Developer guide." />
|
||
<meta property="og:url" content="https://brix365.com/en/help" />
|
||
<meta property="og:image" content="" />
|
||
<link rel="icon" href="favicon.png" type="image/png" />
|
||
|
||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
|
||
<link rel="stylesheet" href="./jquery-ui.min.css" />
|
||
<link rel="stylesheet" href="default.css" />
|
||
<link rel="stylesheet" href="./search-yandex.css" />
|
||
<link rel="stylesheet" href="./article.css" />
|
||
<link rel="stylesheet" href="./glossary.css" />
|
||
<link rel="stylesheet" href="./theme.css" />
|
||
<script type="text/javascript" src="jquery.js"></script>
|
||
<script type="text/javascript" src="helpman_settings.js"></script>
|
||
<script type="text/javascript" src="helpman_topicinit.js"></script>
|
||
|
||
<script type="text/javascript" src="highlight.js"></script>
|
||
<script type="text/javascript">
|
||
$(document).ready(function(){highlight();});
|
||
</script>
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<script>!function(e,t,c,n,r,a,m){e.ym=e.ym||function(){(e.ym.a=e.ym.a||[]).push(arguments)},e.ym.l=1*new Date;for(var s=0;s<document.scripts.length;s++)if(document.scripts[s].src===n)return;a=t.createElement(c),m=t.getElementsByTagName(c)[0],a.async=1,a.src=n,m.parentNode.insertBefore(a,m)}(window,document,"script","https://mc.yandex.ru/metrika/tag.js"),ym(83179930,"init",{clickmap:!0,trackLinks:!0,accurateTrackBounce:!0,webvisor:!0})</script><noscript><div><img alt=""src=https://mc.yandex.ru/watch/83179930 style=position:absolute;left:-9999px></div></noscript>
|
||
|
||
<header class="header elma-365">
|
||
<div class="container">
|
||
<a class="header__logo" href="https://brix365.com/en/help">
|
||
<img src="./logo-en.svg" alt="header logo">
|
||
</a>
|
||
<!-- <div class="hero__search-form" id="search-panel">
|
||
<form class="search-form" onsubmit="ym(83180416,'reachGoal','poisk')">
|
||
<label class="search-form__label">
|
||
<span id="reset-search" class="search__icon"></span>
|
||
<input class="search-form__input" type="text">
|
||
</label>
|
||
<input class="search-form__submit" type="submit" value="Submit">
|
||
</form>
|
||
</div> -->
|
||
|
||
<div class="hero__search-form" id="search-panel"> <form class="search-form"> <label class="search-form__label"> <span id="reset-search" class="search__icon"></span> <input class="search-form__input" type="text"> </label> <input class="search-form__submit" type="submit" value="Submit"> </form> </div>
|
||
<div class="hero__search">
|
||
<a href="#" id="search-icon" class="hero__search-icon">
|
||
<img src="search-icon-white.svg" alt="search string">
|
||
</a>
|
||
<a href="#" id="side-menu-icon" class="hero__side-icon">
|
||
<img src="side_menu.svg" alt="side menu">
|
||
</a>
|
||
</div>
|
||
<div class="header__navi">
|
||
|
||
<ul class="header__list"><li><span class="solution-select"><span class="solution-select__selected"></span><svg width="7" height="4" viewBox="0 0 7 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L3.5 3.5L6 1" stroke="white" stroke-linecap="round" stroke-linejoin="round"/></svg><ul class="solution-select__list"><li><a class="project-link" href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a class="project-link" href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a class="project-link" href="https://brix365.com/en/help/crm/crm_overview.html">CRM</a></li><li><a class="project-link" href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a class="project-link" href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li><li><a class="project-link" href="https://brix365.com/en/help/business_solutions/-elma365-store.html">Business Solutions</a></li></ul></span></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li><li><a href="https://tssdk.brix365.com/" target="_blank">SDK</a></li></ul>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</header>
|
||
|
||
|
||
|
||
|
||
<main class="main container">
|
||
|
||
<aside class="sidebar" id="sidebar">
|
||
<div class="sidebar__header">
|
||
<a class="header__logo" href="https://brix365.com/en/help">
|
||
<img src="./logo-light-en.svg">
|
||
</a>
|
||
<span class="sidebar__close elma-365-close" id="close"></span>
|
||
</div>
|
||
<div class="sidebar__wrapper" id="side-menu">
|
||
|
||
</div>
|
||
</aside>
|
||
|
||
<article class="article" id="article">
|
||
<div class="article-inner">
|
||
<div class="content">
|
||
<header class="article__header">
|
||
<div class="article__bread" style="display:flex; gap:10px;">
|
||
<span id="subcategory" class="search-res__item-category search-res__item-category_subcategory subcategory article__badge"></span>
|
||
|
||
<div class="topic__breadcrumbs">
|
||
<p><a href="elma365-on-premises.html">BRIX On-Premises</a> > <a href="infrastructure-preparation.html">Prepare infrastructure</a> > Load balancer / Install HAProxy </p>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="topic__title"><h1 class="p_Heading1"><span class="f_Heading1">Install HAProxy </span></h1>
|
||
</div>
|
||
|
||
</header>
|
||
<section class="article__content">
|
||
<div class="scroll-top-inner">
|
||
<a href="#h1-article" class="scroll-top"></a>
|
||
</div>
|
||
<!-- Placeholder for topic body. -->
|
||
<p class="p_Normal">HAProxy is a tool for ensuring high availability and load balancing. In the BRIX system, HAProxy is employed to build a resilient architecture for organizing a highly available BRIX cluster. The necessary HAProxy configuration is chosen based on the architecture being established. This article divides the HAProxy configuration into a basic setup (the HAProxy service config) and configurations for balancing BRIX components, which can be added to the HAProxy config alongside the basic section.</p>
|
||
<p class="p_Normal">The installation consists of 3 steps:</p>
|
||
<ol style="list-style-type:decimal">
|
||
<li value="1" class="p_Normal"><a href="haproxy-load-balance.html#install-haproxy" class="topiclink">Install HAProxy</a>.</li><li value="2" class="p_Normal"><a href="haproxy-load-balance.html#set-up-haproxy-configuration" class="topiclink">Configure basic HAProxy settings</a>.</li><li value="3" class="p_Normal"><a href="haproxy-load-balance.html#add-configurations" class="topiclink">Add configurations for balancing BRIX components</a>.</li></ol>
|
||
<h2 class="p_Heading2"><a id="install-haproxy" class="hmanchor"></a><span class="f_Heading2">Step 1: Install HAProxy</span></h2>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="1" class="p_Normal">Install HAProxy using the following command:</li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo apt install haproxy -y</span></p>
|
||
<ol style="list-style-type:upper-roman" start="2">
|
||
<li value="2" class="p_Normal">Start the HAProxy service and enable it at boot:</li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo systemctl enable --now haproxy</span></p>
|
||
<h2 class="p_Heading2"><a id="set-up-haproxy-configuration" class="hmanchor"></a><span class="f_Heading2">Step 2: Configure basic HAProxy settings</span></h2>
|
||
<ol style="list-style-type:upper-roman">
|
||
<li value="1" class="p_Normal">Move the default configuration file:</li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo mv /etc/haproxy/haproxy.cfg{,.original}</span></p>
|
||
<ol style="list-style-type:upper-roman" start="2">
|
||
<li value="2" class="p_Normal">Create and open a new configuration file for editing:</li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo nano /etc/haproxy/haproxy.cfg</span></p>
|
||
<p class="p_Normal">The basic section of the configuration file describes the parameters of the HAProxy server, such as the operating mode, timeouts, connection counts, enabling the web interface, and more. The provided example includes the necessary configuration for the HAProxy server to function. For more details about the parameters used, refer to the <a href="http://docs.haproxy.org/" class="weblink">official HAProxy documentation</a>.</p>
|
||
<p class="p_Normal"><a class="dropdown-toggle" style="font-style: normal; font-weight: normal; color: #000000; background-color: transparent; text-decoration: none;" href="javascript:HMToggle('toggle','TOGGLE0186A1')">Example basic HAProxy configuration for the haproxy.cfg file</a></p>
|
||
<div id="TOGGLE0186A1" class="dropdown-toggle-body" style="text-align: left; text-indent: 0; line-height: 1.80; padding: 0 0 0 0; margin: 0 0 0 0;"><table style="border:none; border-spacing:0;">
|
||
<tr>
|
||
<td style="vertical-align:top; padding:0; border:none"><p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">global</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">maxconn 100000</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">log /dev/log local0</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">log /dev/log local1</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">notice</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">chroot /var/lib/haproxy</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">stats socket /run/haproxy/admin.sock</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">mode 660 level admin expose-fd listeners</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">stats timeout 30s</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">user haproxy</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">group haproxy</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">daemon</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">defaults</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">mode tcp</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">log global</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">retries 2</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">timeout queue 5s</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">timeout connect 5s</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">timeout</span><span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">client 60m</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">timeout server 60m</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">timeout check 15s</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">listen stats</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">mode http</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">bind haproxy-server.your_domain:7000</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">stats enable</span><br />
|
||
<span class="f_CodeExample" style="color: #ffffff;"> </span><span class="f_CodeExample">stats uri /</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">### Web BRIX ###</span><br />
|
||
<span class="f_CodeExample">### Web BRIX ###</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">### PostgreSQL ###</span><br />
|
||
<span class="f_CodeExample">### PostgreSQL ###</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">### Redis ###</span><br />
|
||
<span class="f_CodeExample">### Redis ###</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">### RabbitMQ ###</span><br />
|
||
<span class="f_CodeExample">### RabbitMQ ###</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">### S3 MinIO ###</span><br />
|
||
<span class="f_CodeExample">### S3 MinIO ###</span><br />
|
||
<span class="f_CodeExample"> </span><br />
|
||
<span class="f_CodeExample">### Docs Server ###</span><br />
|
||
<span class="f_CodeExample">### Docs Server ###</span></p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
<ol style="list-style-type:upper-roman" start="3">
|
||
<li value="3" class="p_Normal">Restart HAProxy:</li></ol>
|
||
<p class="p_CodeExample" style="page-break-inside: avoid;"><span class="f_CodeExample">sudo systemctl restart haproxy</span></p>
|
||
<h2 class="p_Heading2"><a id="add-configurations" class="hmanchor"></a><span class="f_Heading2">Step 3: Add configurations for balancing BRIX components</span></h2>
|
||
<p class="p_Normal">Configurations for BRIX components are added to the <code><b>haproxy.cfg</b></code> file as needed. </p>
|
||
<p class="p_Normal">Depending on the architecture being built, you can add the following configurations:</p>
|
||
<ul style="list-style-type:disc">
|
||
<li class="p_Normal"><a href="haproxy-postgresql.html" class="topiclink">HAProxy for PostgreSQL</a>.</li><li class="p_Normal"><a href="haproxy-rabbitmq.html" class="topiclink">HAProxy for RabbitMQ</a></li><li class="p_Normal"><a href="haproxy-s3-minio.html" class="topiclink">HAProxy for S3 Minio</a>.</li><li class="p_Normal"><a href="haproxy-web-elma365.html" class="topiclink">HAProxy for BRIX web</a>.</li><li class="p_Normal"><a href="haproxy-docs-server.html" class="topiclink">HAProxy for document server</a>.</li></ul>
|
||
|
||
<div class="bottom-nav">
|
||
|
||
<a id="prev-link" class="topic__navi_prev" href="upgrading-postgresql-container-10-to-15.html">
|
||
<span class="bottom-nav__arrow bottom-nav__arrow--prev"></span> <span
|
||
class="bottom-nav__link">upgrading-postgresql-container-10-to-15.html</span>
|
||
</a>
|
||
|
||
|
||
<a id="next-link" class="topic__navi_next" href="fail-safe-haproxy.html">
|
||
<span class="bottom-nav__link">fail-safe-haproxy.html</span> <span
|
||
class="bottom-nav__arrow bottom-nav__arrow--next"></span>
|
||
</a>
|
||
|
||
</div>
|
||
<!-- добавляет на страницу строку блок Была ли статья полезной? -->
|
||
<div class="feedback" id="feedback"><div class="feedback-help"><span><b>Was this helpful?</b></span><form action="" method="POST" class="feedback-form" id="feedback-form"><div class="feedback__popup feedback__popup-response" id="feedback__popup_thx" style="display: none;">Thanks for your feedback!</div><div class="feedback__popup" id="feedback__popup_why" style="display: none;"><div class="feedback__popup-header">Please specify why:</div><input type="radio" name="category" id="bad_recommendation" value="bad_recommendation"><label for="bad_recommendation">Recommendations did not help me</label><input type="radio" name="category" id="difficult_text" value="difficult_text"><label for="difficult_text">Article is hard to understand</label><input type="radio" name="category" id="no_answer" value="no_answer"><label for="no_answer">Didn`t answer my question</label><input type="radio" name="category" id="bad_header" value="bad_header"><label for="bad_header">Content does not match the topic</label><input type="radio" name="category" id="other_reason" value="other_reason"><label for="other_reason">Other</label></div><div class="feedback__popup" id="feedback__popup-other" style="display: none;"><div class="feedback__popup-header">How we can improve it?</div><textarea class="feedback__textarea" name="other" id=""></textarea><input type="submit" class="feedback__other-btn" value="Submit"></div><div class="feedback-form__btn-group"><input type="radio" name="useful" id="feedback__useful_yes" value="true"><label for="feedback__useful_yes"><img src="like.svg" class="small-img" alt="like"><spanclass="feedback-form__btn-group_yes-btn">Yes</spanclass="feedback-form__btn-group_yes-btn"></label><input type="radio" name="useful" id="feedback__useful_no" value="false"><label for="feedback__useful_no"><img src="dislike.svg" class="small-img" alt="dislike"><spanclass="feedback-form__btn-group_no-btn">No</spanclass="feedback-form__btn-group_no-btn"></label></div><select name="category"><option disabled="">Please specify why</option><option value="bad_recommendation" selected="">Recommendations did not help me</option><option value="difficult_text">Article is hard to understand</option><option value="no_answer">Didn`t answer my question</option><option value="bad_header">Content does not match the topic</option><option value="other_reason">Other</option></select><input type="submit"></form></div><div class="found_typo"><p style="margin: 0px; margin-top: 16px !important;"><span><b>Found a typo?</b></span> Select it and press <i>Ctrl+Enter</i> to send us feedback</p></div></div>
|
||
|
||
</section>
|
||
</div>
|
||
<aside class="article__sidebar" style="display:none">
|
||
<input type="checkbox" />
|
||
<div class="article__arrow"></div>
|
||
<div class="table-of-contents elma365-right" id="toc2Content">
|
||
<h3 class="h3-toc">In this topic</h3>
|
||
<nav id="toc2"></nav>
|
||
</div>
|
||
</aside>
|
||
</div>
|
||
</article>
|
||
</main>
|
||
<footer class="footer">
|
||
<div class="footer-container">
|
||
<div class="footer-mobile">
|
||
|
||
<ul class="footer-mobile__list"><li><a href="https://brix365.com/en/" target="_blank">BRIX</a></li><li><a href="https://tssdk.brix365.com/en/latest/" target="_blank">SDK</a></li><li><a href="https://api.brix365.com/en/" target="_blank">API</a></li></ul><ul class="footer-mobile__list"><li><a href="https://brix365.com/en/help/platform/get-trial.html">Platform</a></li><li><a href="https://brix365.com/en/help/ecm/ecm-functions.html">ECM</a></li><li><a href="https://brix365.com/en/help/service/service-functions.html">Service</a></li><li><a href="https://brix365.com/en/help/projects/projects-functions.html">Projects</a></li></ul>
|
||
|
||
|
||
</div>
|
||
<div class="footer-wrap">
|
||
|
||
<div><span class="mobile-question-popup">Send feedback</span><form method="POST" action class="question__popup question-xs" id="question__popup"><div class="question-wrap"><span class="close"></span><span class="title">Ask a question</span><label for="help_question" style="display: none;"></label><textarea name="help_question" id="help_question"></textarea><input type="submit" value="Send"></div></form><div class="hidden fade-in question-success-xs">Sent</div></div>
|
||
|
||
<div class="footer-flex-b">
|
||
<span class="footer-copy">© 2025 BRIX</span>
|
||
<ul class="footer-list">
|
||
|
||
<li class="footer-item">
|
||
<a href="#" class="arrow-top" style="display: block;"></a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</footer>
|
||
<iframe name="hmnavigation" style="display:none!important"></iframe>
|
||
<script src="./jquery-ui.js"></script>
|
||
<!--script src="//cdn.jsdelivr.net/npm/featherlight@1.7.14/release/featherlight.min.js" type="text/javascript" charset="utf-8"></script-->
|
||
<script src="./jquery.tocify.min.js"></script>
|
||
<script src="./TypoReporter.min.js"></script>
|
||
<script src="./google-search.js"></script>
|
||
<script src="./main.js"></script>
|
||
<script type="text/javascript">
|
||
HMInitToggle('TOGGLE0186A1','hm.type','dropdown','hm.state','0');
|
||
</script>
|
||
</body>
|
||
|
||
</html>
|