Haproxy实现80端口复用

Posted 终身学习者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Haproxy实现80端口复用相关的知识,希望对你有一定的参考价值。

版权声明:


本文作者为—陈鑫

本文的所有内容均来陈鑫总结,未经本人许可,禁止私自转发及使用。

QQ: 499741233

E-mail: 499741233@qq.com


第1章 安装环境

1.1 系统环境

[root@10 conf]# uname -r

2.6.32-642.4.2.el6.x86_64

[root@10 conf]# uname -m

x86_64

[root@10 conf]# cat /etc/re

readahead.conf    redhat-lsb/       redhat-release    request-key.conf  request-key.d/    resolv.conf

[root@10 conf]# cat /etc/redhat-release

CentOS release 6.8 (Final)

1.2 程序版本

1.2.1 Haproxy

[root@10 haproxy]# ./sbin/haproxy -v

HA-Proxy version 1.5.11 2015/01/31

Copyright 2000-2015 Willy Tarreau <w@1wt.eu>

1.2.2 Haproxy程序下载地址

 

第2章 Haproxy安装启动

2.1 Haproxy安装

tar xf haproxy-1.5.11.tar.gz

cd haproxy-1.5.11

make TARGET=linux26 PREFIX=/usr/local/haproxy

make install PREFIX=/usr/local/haproxy

备注:TARGET要指定的系统的内核版本。

2.2 Haproxy配置文件

cd /usr/local/haproxy/

mkdir conf

cd conf

vim haproxy.cfg

[root@10 conf]# cat haproxy.cfg

global

    log         127.0.0.1 local0

    log         127.0.0.1 local1 notice

 

    chroot      /var/lib/haproxy

    pidfile     /var/run/haproxy.pid

    maxconn     4000

    user        haproxy

    group       haproxy

    daemon

 

    # turn on stats unix socket

    stats socket /var/lib/haproxy/stats

 

defaults

    mode                    http

    log                     global

    option                  httplog

    option                  dontlognull

    option http-server-close

    option                  redispatch

    retries                 3

    timeout http-request    10s

    timeout queue           1m

    timeout connect         10s

    timeout client          1m

    timeout server          1m

    timeout http-keep-alive 10s

    timeout check           10s

    maxconn                 3000

 

frontend main

    mode tcp

    bind *:80

    log global

    option tcplog

    log-format %ft\\ %b/%s

 

    tcp-request inspect-delay 3s

    acl is_https req.payload(0,3) -m bin 160301

#GET POS(T) PUT DEL(ETE) OPT(IONS) HEA(D) CON(NECT) TRA(CE)

    acl is_http req.payload(0,3) -m bin 474554 504f53 505554 44454c 4f5054 484541 434f4e 545241

#SSH

    acl is_ssh req.payload(0,3) -m bin 535348

    tcp-request content accept if is_http

    tcp-request content accept if is_https

    tcp-request content accept if is_ssh

    tcp-request content accept

    use_backend https if is_https

    use_backend http if is_http

    use_backend ssh if is_ssh

    use_backend ssh

 

backend ssh

    mode tcp

    timeout server 1h

    server server-ssh 127.0.0.1:22

 

backend http

    mode tcp

    server ngx01 127.0.0.1:82 maxconn 10 check inter 3s

 

backend https

    mode tcp

    server ngx02 127.0.0.1:433 maxconn 10 check inter 3s

2.3 启动Haproxy

useradd -s /sbin/nologin -M haproxy

mkdir /var/lib/haproxy

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

第3章 测试

3.1 测试ssh服务

{17:05}~/loginssh root@10.63.101.52 -p80

Last login: Thu Oct 13 17:05:27 2016 from localhost

3.2 测试http服务

以上是关于Haproxy实现80端口复用的主要内容,如果未能解决你的问题,请参考以下文章

HaProxy 实现443 端口复用

HaProxy 实现443 端口复用

haproxy 配置https 同时技持443 80端口

haproxy原理理解

haproxy默认端口号 是多少

TCP客户端随机端口能否复用