首次尝试使用带有一对ha-proxy后端的AWS Network Load Balancer,并且遇到一些我自己无法解决的问题。我正在尝试使用的是基本的TCP代理,这是到目前为止的配置:
frontend fe_https
bind *:443 tfo
acl myworld req_ssl_sni -i www.mysite.com
capture request header Host len 253
capture request header X-REQ-ID len 32
capture request header X-Unique-ID len 60
mode tcp
option tcplog
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
default_backend be_tarpit
#use_backend be_https
use_backend be_https if myworld
backend be_https
description 'Backend for TCP proxy'
mode tcp
option tcplog
option tcp-check
server localdfw 127.0.0.1:8443 check send-proxy #verify none
但是我在浏览器上得到了它:
This site can't provide a secure connection
www.mysite.com sent an invalid response.
ERR_SSL_PROTOCOL_ERROR
这是在日志中:
Nov 19 14:10:23 localhost haproxy[6634]: xx.xxx.xxx.118:40840 [19/Nov/2018:14:10:23.127] fe_https be_tarpit/<NOSRV> -1/-1/7 188 PR 0/0/0/0/3 0/0
日志中的tarpit显示ACL不匹配:如果强制执行ACL,则它没有达到 SERVER 。
有人知道我在想什么吗?我有一个类似的设置,唯一的区别是使用了经典ELB代替了NLB。