天才马 發表於 2023-9-4 00:00:00

CentOS7—HAProxy安装与配置详解

<p>
        <strong>概述</strong></p>
<p>
        Haproxy下载地址:http://pkgs.fedoraproject.org/repo/pkgs/haproxy/</p>
<p>
        <strong>关闭SElinux、配置防火墙</strong></p>
<p>
        1、vi /etc/selinux/config</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_562672">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments">#SELINUX=enforcing #注释掉</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                         </div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments">#SELINUXTYPE=targeted #注释掉</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                         </div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">SELINUX=disabled </code><code class="bash comments">#增加</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                         </div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">:wq! </code><code class="bash comments">#保存退出</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                         </div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash plain">setenforce 0 </code><code class="bash comments">#使配置立即生效</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        2、vi /etc/sysconfig/iptables  #编辑</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_803598">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">-A RH-Firewall-1-INPUT -d 224.0.0.18 -j ACCEPT </code><code class="bash comments">#允许组播地址通信</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                         </div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">-A RH-Firewall-1-INPUT -p vrrp -j ACCEPT </code><code class="bash comments">#允许VRRP(虚拟路由器冗余协)通信</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                         </div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT </code><code class="bash comments">#允许80端口通过防火墙</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                         </div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">:wq! </code><code class="bash comments">#保存退出</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                         </div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash plain">/etc/init</code><code class="bash plain">.d</code><code class="bash plain">/iptables</code> <code class="bash plain">restart </code><code class="bash comments">#重启防火墙使配置生效</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>安装HAProxy</strong></p>
<p>
        1、创建HAProxy运行账户和组</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_301318">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">groupadd haproxy </code><code class="bash comments">#添加haproxy组</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                         </div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">useradd</code> <code class="bash plain">-g haproxy haproxy -s </code><code class="bash plain">/bin/false</code> <code class="bash comments">#创建nginx运行账户haproxy并加入到haproxy组,不允许haproxy用户直接登录系统</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>2、安装:</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_566132">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># yum install -y gcc</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># tar zxvf haproxy-1.6.9.tar.gz</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># cd haproxy-1.6.9</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain"></code><code class="bash comments"># make TARGET=linux3100 CPU=x86_64 PREFIX=/usr/local/haprpxy #编译 uname -r #查看系统内核版本号</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain"></code><code class="bash comments"># make install PREFIX=/usr/local/haproxy #安装</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                         </div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash comments">#数说明:</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash comments">#TARGET=linux3100</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash comments">#使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash comments">#kernel 大于2.6.28的用:TARGET=linux2628</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash comments">#CPU=x86_64 #使用uname -r查看系统信息,如x86_64 x86_64 x86_64 GNU/Linux,此时该参数就为x86_64</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="bash comments">#PREFIX=/usr/local/haprpxy #/usr/local/haprpxy为haprpxy安装路径</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>3、设置HAProxy</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_506129">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                        <div class="line number19 index18 alt2">
                                                                19</div>
                                                        <div class="line number20 index19 alt1">
                                                                20</div>
                                                        <div class="line number21 index20 alt2">
                                                                21</div>
                                                        <div class="line number22 index21 alt1">
                                                                22</div>
                                                        <div class="line number23 index22 alt2">
                                                                23</div>
                                                        <div class="line number24 index23 alt1">
                                                                24</div>
                                                        <div class="line number25 index24 alt2">
                                                                25</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">mkdir</code> <code class="bash plain">-p </code><code class="bash plain">/usr/local/haproxy/conf</code> <code class="bash comments">#创建配置文件目录</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                         </div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">mkdir</code> <code class="bash plain">-p </code><code class="bash plain">/etc/haproxy</code> <code class="bash comments">#创建配置文件目录</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                         </div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash functions">touch</code> <code class="bash plain">/usr/local/haproxy/conf/haproxy</code><code class="bash plain">.cfg </code><code class="bash comments">#创建配置文件</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                         </div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/haproxy/conf/haproxy</code><code class="bash plain">.cfg </code><code class="bash plain">/etc/haproxy/haproxy</code><code class="bash plain">.cfg </code><code class="bash comments">#添加配置文件软连接</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                         </div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash functions">cp</code> <code class="bash plain">-r </code><code class="bash plain">/usr/local/src/haproxy-1</code><code class="bash plain">.6.9</code><code class="bash plain">/examples/errorfiles</code> <code class="bash plain">/usr/local/haproxy/errorfiles</code> <code class="bash comments">#拷贝错误页面</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                         </div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/haproxy/errorfiles</code> <code class="bash plain">/etc/haproxy/errorfiles</code> <code class="bash comments">#添加软连接</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                         </div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="bash functions">mkdir</code> <code class="bash plain">-p </code><code class="bash plain">/usr/local/haproxy/log</code> <code class="bash comments">#创建日志文件目录</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                         </div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="bash functions">touch</code> <code class="bash plain">/usr/local/haproxy/log/haproxy</code><code class="bash plain">.log </code><code class="bash comments">#创建日志文件</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                         </div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/haproxy/log/haproxy</code><code class="bash plain">.log </code><code class="bash plain">/var/log/haproxy</code><code class="bash plain">.log </code><code class="bash comments">#添加软连接</code>
</div>
                                                                <div class="line number18 index17 alt1">
                                                                         </div>
                                                                <div class="line number19 index18 alt2">
                                                                        <code class="bash functions">cp</code> <code class="bash plain">/usr/local/src/haproxy-1</code><code class="bash plain">.6.9</code><code class="bash plain">/examples/haproxy</code><code class="bash plain">.init </code><code class="bash plain">/etc/rc</code><code class="bash plain">.d</code><code class="bash plain">/init</code><code class="bash plain">.d</code><code class="bash plain">/haproxy</code> <code class="bash comments">#拷贝开机启动文件</code>
</div>
                                                                <div class="line number20 index19 alt1">
                                                                         </div>
                                                                <div class="line number21 index20 alt2">
                                                                        <code class="bash functions">chmod</code> <code class="bash plain">+x </code><code class="bash plain">/etc/rc</code><code class="bash plain">.d</code><code class="bash plain">/init</code><code class="bash plain">.d</code><code class="bash plain">/haproxy</code> <code class="bash comments">#添加脚本执行权限</code>
</div>
                                                                <div class="line number22 index21 alt1">
                                                                         </div>
                                                                <div class="line number23 index22 alt2">
                                                                        <code class="bash plain">chkconfig haproxy on </code><code class="bash comments">#设置开机启动</code>
</div>
                                                                <div class="line number24 index23 alt1">
                                                                         </div>
                                                                <div class="line number25 index24 alt2">
                                                                        <code class="bash functions">ln</code> <code class="bash plain">-s </code><code class="bash plain">/usr/local/haproxy/sbin/haproxy</code> <code class="bash plain">/usr/sbin</code> <code class="bash comments">#添加软连接</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>4、配置haproxy.cfg参数</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_273326">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">cp</code> <code class="bash plain">/usr/local/haproxy/conf/haproxy</code><code class="bash plain">.cfg </code><code class="bash plain">/usr/local/haproxy/conf/haproxy</code><code class="bash plain">.cfg-bak </code><code class="bash comments">#备份</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                         </div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash functions">vi</code> <code class="bash plain">/usr/local/haproxy/conf/haproxy</code><code class="bash plain">.cfg </code><code class="bash comments">#编辑,修改</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_601362">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                        <div class="line number19 index18 alt2">
                                                                19</div>
                                                        <div class="line number20 index19 alt1">
                                                                20</div>
                                                        <div class="line number21 index20 alt2">
                                                                21</div>
                                                        <div class="line number22 index21 alt1">
                                                                22</div>
                                                        <div class="line number23 index22 alt2">
                                                                23</div>
                                                        <div class="line number24 index23 alt1">
                                                                24</div>
                                                        <div class="line number25 index24 alt2">
                                                                25</div>
                                                        <div class="line number26 index25 alt1">
                                                                26</div>
                                                        <div class="line number27 index26 alt2">
                                                                27</div>
                                                        <div class="line number28 index27 alt1">
                                                                28</div>
                                                        <div class="line number29 index28 alt2">
                                                                29</div>
                                                        <div class="line number30 index29 alt1">
                                                                30</div>
                                                        <div class="line number31 index30 alt2">
                                                                31</div>
                                                        <div class="line number32 index31 alt1">
                                                                32</div>
                                                        <div class="line number33 index32 alt2">
                                                                33</div>
                                                        <div class="line number34 index33 alt1">
                                                                34</div>
                                                        <div class="line number35 index34 alt2">
                                                                35</div>
                                                        <div class="line number36 index35 alt1">
                                                                36</div>
                                                        <div class="line number37 index36 alt2">
                                                                37</div>
                                                        <div class="line number38 index37 alt1">
                                                                38</div>
                                                        <div class="line number39 index38 alt2">
                                                                39</div>
                                                        <div class="line number40 index39 alt1">
                                                                40</div>
                                                        <div class="line number41 index40 alt2">
                                                                41</div>
                                                        <div class="line number42 index41 alt1">
                                                                42</div>
                                                        <div class="line number43 index42 alt2">
                                                                43</div>
                                                        <div class="line number44 index43 alt1">
                                                                44</div>
                                                        <div class="line number45 index44 alt2">
                                                                45</div>
                                                        <div class="line number46 index45 alt1">
                                                                46</div>
                                                        <div class="line number47 index46 alt2">
                                                                47</div>
                                                        <div class="line number48 index47 alt1">
                                                                48</div>
                                                        <div class="line number49 index48 alt2">
                                                                49</div>
                                                        <div class="line number50 index49 alt1">
                                                                50</div>
                                                        <div class="line number51 index50 alt2">
                                                                51</div>
                                                        <div class="line number52 index51 alt1">
                                                                52</div>
                                                        <div class="line number53 index52 alt2">
                                                                53</div>
                                                        <div class="line number54 index53 alt1">
                                                                54</div>
                                                        <div class="line number55 index54 alt2">
                                                                55</div>
                                                        <div class="line number56 index55 alt1">
                                                                56</div>
                                                        <div class="line number57 index56 alt2">
                                                                57</div>
                                                        <div class="line number58 index57 alt1">
                                                                58</div>
                                                        <div class="line number59 index58 alt2">
                                                                59</div>
                                                        <div class="line number60 index59 alt1">
                                                                60</div>
                                                        <div class="line number61 index60 alt2">
                                                                61</div>
                                                        <div class="line number62 index61 alt1">
                                                                62</div>
                                                        <div class="line number63 index62 alt2">
                                                                63</div>
                                                        <div class="line number64 index63 alt1">
                                                                64</div>
                                                        <div class="line number65 index64 alt2">
                                                                65</div>
                                                        <div class="line number66 index65 alt1">
                                                                66</div>
                                                        <div class="line number67 index66 alt2">
                                                                67</div>
                                                        <div class="line number68 index67 alt1">
                                                                68</div>
                                                        <div class="line number69 index68 alt2">
                                                                69</div>
                                                        <div class="line number70 index69 alt1">
                                                                70</div>
                                                        <div class="line number71 index70 alt2">
                                                                71</div>
                                                        <div class="line number72 index71 alt1">
                                                                72</div>
                                                        <div class="line number73 index72 alt2">
                                                                73</div>
                                                        <div class="line number74 index73 alt1">
                                                                74</div>
                                                        <div class="line number75 index74 alt2">
                                                                75</div>
                                                        <div class="line number76 index75 alt1">
                                                                76</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># Global settings</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">global</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">log 127.0.0.1 local2   </code><code class="bash comments">### </code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">chroot </code><code class="bash plain">/usr/local/haproxy</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">pidfile </code><code class="bash plain">/var/run/haproxy</code><code class="bash plain">.pid </code><code class="bash comments">###haproxy的pid存放路径,启动进程的用户必须有权限访问此文件 </code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">maxconn 4000     </code><code class="bash comments">###最大连接数,默认4000</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">user haproxy</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">group haproxy</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">daemon       </code><code class="bash comments">###创建1个进程进入deamon模式运行。此参数要求将运行模式设置为"daemon"</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="bash spaces"> </code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="bash comments"># common defaults that all the 'listen' and 'backend' sections will </code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="bash comments"># use if not designated in their block</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="bash plain">defaults</code>
</div>
                                                                <div class="line number18 index17 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">mode http    </code><code class="bash comments">###默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK</code>
</div>
                                                                <div class="line number19 index18 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">log global   </code><code class="bash comments">###采用全局定义的日志</code>
</div>
                                                                <div class="line number20 index19 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">option dontlognull  </code><code class="bash comments">###不记录健康检查的日志信息</code>
</div>
                                                                <div class="line number21 index20 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">option httpclose  </code><code class="bash comments">###每次请求完毕后主动关闭http通道 </code>
</div>
                                                                <div class="line number22 index21 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">option httplog   </code><code class="bash comments">###日志类别http日志格式 </code>
</div>
                                                                <div class="line number23 index22 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">option forwardfor  </code><code class="bash comments">###如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip </code>
</div>
                                                                <div class="line number24 index23 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">option redispatch  </code><code class="bash comments">###serverId对应的服务器挂掉后,强制定向到其他健康的服务器</code>
</div>
                                                                <div class="line number25 index24 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">timeout connect 10000 </code><code class="bash comments">#default 10 second timeout if a backend is not found</code>
</div>
                                                                <div class="line number26 index25 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">timeout client 300000 </code><code class="bash comments">###客户端连接超时</code>
</div>
                                                                <div class="line number27 index26 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">timeout server 300000 </code><code class="bash comments">###服务器连接超时</code>
</div>
                                                                <div class="line number28 index27 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">maxconn  60000  </code><code class="bash comments">###最大连接数</code>
</div>
                                                                <div class="line number29 index28 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">retries  3   </code><code class="bash comments">###3次连接失败就认为服务不可用,也可以通过后面设置 </code>
</div>
                                                                <div class="line number30 index29 alt1">
                                                                        <code class="bash comments">####################################################################</code>
</div>
                                                                <div class="line number31 index30 alt2">
                                                                        <code class="bash plain">listen stats</code>
</div>
                                                                <div class="line number32 index31 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">bind 0.0.0.0:1080   </code><code class="bash comments">#监听端口 </code>
</div>
                                                                <div class="line number33 index32 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">stats refresh 30s   </code><code class="bash comments">#统计页面自动刷新时间 </code>
</div>
                                                                <div class="line number34 index33 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">stats uri </code><code class="bash plain">/stats</code>   <code class="bash comments">#统计页面url </code>
</div>
                                                                <div class="line number35 index34 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash plain">stats realm Haproxy Manager </code><code class="bash comments">#统计页面密码框上提示文本 </code>
</div>
                                                                <div class="line number36 index35 alt1">
                                                                        <code class="bash spaces">  </code><code class="bash plain">stats auth admin:admin  </code><code class="bash comments">#统计页面用户名和密码设置 </code>
</div>
                                                                <div class="line number37 index36 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash comments">#stats hide-version   #隐藏统计页面上HAProxy的版本信息</code>
</div>
                                                                <div class="line number38 index37 alt1">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number39 index38 alt2">
                                                                        <code class="bash comments"># main frontend which proxys to the backends</code>
</div>
                                                                <div class="line number40 index39 alt1">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number41 index40 alt2">
                                                                        <code class="bash plain">frontend main</code>
</div>
                                                                <div class="line number42 index41 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">bind 0.0.0.0:80</code>
</div>
                                                                <div class="line number43 index42 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">acl url_static path_beg -i </code><code class="bash plain">/static</code> <code class="bash plain">/images</code> <code class="bash plain">/javascript</code> <code class="bash plain">/stylesheets</code>
</div>
                                                                <div class="line number44 index43 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">acl url_static path_end -i .jpg .gif .png .css .js</code>
</div>
                                                                <div class="line number45 index44 alt2">
                                                                        <code class="bash spaces"> </code>
</div>
                                                                <div class="line number46 index45 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">use_backend static </code><code class="bash keyword">if</code> <code class="bash plain">url_static  </code><code class="bash comments">###满足策略要求,则响应策略定义的backend页面</code>
</div>
                                                                <div class="line number47 index46 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">default_backend dynamic   </code><code class="bash comments">###不满足则响应backend的默认页面</code>
</div>
                                                                <div class="line number48 index47 alt1">
                                                                        <code class="bash spaces"> </code>
</div>
                                                                <div class="line number49 index48 alt2">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number50 index49 alt1">
                                                                        <code class="bash comments"># static backend for serving up images, stylesheets and such</code>
</div>
                                                                <div class="line number51 index50 alt2">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number52 index51 alt1">
                                                                        <code class="bash spaces"> </code>
</div>
                                                                <div class="line number53 index52 alt2">
                                                                        <code class="bash plain">backend static</code>
</div>
                                                                <div class="line number54 index53 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">balance  roundrobin     </code><code class="bash comments">###负载均衡模式轮询</code>
</div>
                                                                <div class="line number55 index54 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">server  static 127.0.0.1:80 check </code><code class="bash comments">###后端服务器定义</code>
</div>
                                                                <div class="line number56 index55 alt1">
                                                                        <code class="bash spaces">  </code>
</div>
                                                                <div class="line number57 index56 alt2">
                                                                        <code class="bash plain">backend dynamic</code>
</div>
                                                                <div class="line number58 index57 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">balance roundrobin</code>
</div>
                                                                <div class="line number59 index58 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">server   websrv1 10.252.97.106:80 check maxconn 2000</code>
</div>
                                                                <div class="line number60 index59 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">server   websrv2 10.117.8.20:80 check maxconn 2000</code>
</div>
                                                                <div class="line number61 index60 alt2">
                                                                        <code class="bash spaces"> </code>
</div>
                                                                <div class="line number62 index61 alt1">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number63 index62 alt2">
                                                                        <code class="bash comments"># round robin balancing between the various backends</code>
</div>
                                                                <div class="line number64 index63 alt1">
                                                                        <code class="bash comments">#---------------------------------------------------------------------</code>
</div>
                                                                <div class="line number65 index64 alt2">
                                                                         </div>
                                                                <div class="line number66 index65 alt1">
                                                                        <code class="bash comments">#errorloc 503 http://www.osyunwei.com/404.html</code>
</div>
                                                                <div class="line number67 index66 alt2">
                                                                         </div>
                                                                <div class="line number68 index67 alt1">
                                                                        <code class="bash plain">errorfile 403 </code><code class="bash plain">/etc/haproxy/errorfiles/403</code><code class="bash plain">.http</code>
</div>
                                                                <div class="line number69 index68 alt2">
                                                                         </div>
                                                                <div class="line number70 index69 alt1">
                                                                        <code class="bash plain">errorfile 500 </code><code class="bash plain">/etc/haproxy/errorfiles/500</code><code class="bash plain">.http</code>
</div>
                                                                <div class="line number71 index70 alt2">
                                                                         </div>
                                                                <div class="line number72 index71 alt1">
                                                                        <code class="bash plain">errorfile 502 </code><code class="bash plain">/etc/haproxy/errorfiles/502</code><code class="bash plain">.http</code>
</div>
                                                                <div class="line number73 index72 alt2">
                                                                         </div>
                                                                <div class="line number74 index73 alt1">
                                                                        <code class="bash plain">errorfile 503 </code><code class="bash plain">/etc/haproxy/errorfiles/503</code><code class="bash plain">.http</code>
</div>
                                                                <div class="line number75 index74 alt2">
                                                                         </div>
                                                                <div class="line number76 index75 alt1">
                                                                        <code class="bash plain">errorfile 504 </code><code class="bash plain">/etc/haproxy/errorfiles/504</code><code class="bash plain">.http</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_511286">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">:wq! </code><code class="bash comments">#保存退出</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                         </div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">service haproxy start </code><code class="bash comments">#启动</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                         </div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">service haproxy stop </code><code class="bash comments">#关闭</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                         </div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">service haproxy restart </code><code class="bash comments">#重启</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>5、设置HAProxy日志</strong></p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_954513">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">vi</code> <code class="bash plain">/etc/syslog</code><code class="bash plain">.conf </code><code class="bash comments">#编辑,在最下边增加</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                         </div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments"># haproxy.log</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                         </div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">local0.*   </code><code class="bash plain">/var/log/haproxy</code><code class="bash plain">.log</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                         </div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">local3.*   </code><code class="bash plain">/var/log/haproxy</code><code class="bash plain">.log</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                         </div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash plain">:wq! </code><code class="bash comments">#保存退出</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                         </div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash functions">vi</code> <code class="bash plain">/etc/sysconfig/syslog</code> <code class="bash comments">#编辑修改</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                         </div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="bash plain">SYSLOGD_OPTIONS=</code><code class="bash string">"-r -m 0"</code> <code class="bash comments">#接收远程服务器日志</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                         </div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="bash plain">:wq! </code><code class="bash comments">#保存退出</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                         </div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="bash plain">service syslog restart </code><code class="bash comments">#重启syslog</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        <strong>6.浏览器打开haproxy的监控页面</strong></p>
<p>
        如下:http://120.55.95.103:1080/stats  //说明:1080即haproxy配置文件中监听端口,stats 即haproxy配置文件中的监听名称</p>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
        原文链接:http://www.cnblogs.com/xibei666/p/5877548.html</p>
頁: [1]
查看完整版本: CentOS7—HAProxy安装与配置详解