Haproxy一个端口跑多个服务

我们选择 haproxy 1.8 版本以上的,编译安装到路径 /export/servers/haproxy

make TARGET=linux2628 PREFIX=/export/servers/haproxy USE_GETADDRINFO=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 \
  USE_SYSTEMD=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_NS=1

make install PREFIX=/export/servers/haproxy

编辑 haproxy.conf 配置文件:

global 
  maxconn 5120  
  chroot /export/servers/haproxy   
  daemon 
  quiet 
  nbproc 2 
  pidfile /tmp/haproxy.pid

defaults 
  timeout connect 5s 
  timeout client 50s 
  timeout server 20s

listen http 
  bind :80 
  timeout client 1h 
  tcp-request inspect-delay 2s 
  acl is_http req_proto_http 
  tcp-request content accept if is_http 
  server server-http :8080
  use_backend ssh if !is_http

backend ssh 
  mode tcp 
  timeout server 1h 
  server server-ssh :22

解释一下:

我们在 8080 端口开了 http 服务,

在 22 端口开了 ssh 服务,

80端口由 haproxy 做代理转发,

首先判断客户端请求是否是 http 请求,如果是就转发到 8080 端口,

如果不是,就转发到 22 端口,这样就实现了 80 端口同时跑 http 和 ssh 两个服务。

你可能感兴趣的:(haproxy,MakeLifeEasy,架构,分布式)