Haproxy一个端口跑多个服务

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

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

编辑 haproxy.conf 配置文件:

 1global 
 2  maxconn 5120  
 3  chroot /export/servers/haproxy   
 4  daemon 
 5  quiet 
 6  nbproc 2 
 7  pidfile /tmp/haproxy.pid
 8
 9defaults 
10  timeout connect 5s 
11  timeout client 50s 
12  timeout server 20s
13
14listen http 
15  bind :80 
16  timeout client 1h 
17  tcp-request inspect-delay 2s 
18  acl is_http req_proto_http 
19  tcp-request content accept if is_http 
20  server server-http :8080
21  use_backend ssh if !is_http
22
23backend ssh 
24  mode tcp 
25  timeout server 1h 
26  server server-ssh :22

解释一下:我们在 8080 端口开了 http 服务,在 22 端口开了 ssh 服务,80端口由 haproxy 做代理转发,首先判断客户端请求是否是 http 请求,如果是就转发到 8080 端口,如果不是,就转发到 22 端口,这样就实现了 80 端口同时跑 http 和 ssh 两个服务。


Sslh的一个端口同时跑多个服务
Kubernetes生产环境使用filebeat Sidecar收集日志
comments powered by Disqus