URL에 특정 키워드가 일치하면 SSL 포트가 아닌 (8080)으로 가고 나머지 호출은 SSL 포트 8443으로 이동해야 SSL 용 Haproxy를 구성해야합니다.SSL에 대한 Haproxy acl 규칙
URL example.com이 브라우저에 입력되고 내 컴퓨터의 localhost를 가리키는 경우 example.com에 127.0.0.1을 할당했습니다.
프론트 엔드 SSL에서 'reporting'또는 'account_management'작업의 URL이 백엔드 proxybackend를 나타내지 않으므로 acl 규칙이 원하는대로 작동하지 않습니다. action = reporting이있는 URL이 있더라도 default_backend SSLappAPI를 통과하는 모든 트래픽.
SSL 트래픽 용으로 SSL이 아닌 포트를 사용하려고하거나 아래의 haproxy 구성에서 문제가 발생하여 acl이 작동하지 않습니다. https://example.com/api/?uid=NrpB1vfSR01KVsxw1YI5H4&action=reporting
frontend main *:80
acl is_api url_param(action) -i host_check
use_backend appAPI if is_api
default_backend appUI
option forwardfor
frontend ssl
mode tcp
bind *:443
option tcplog
acl server_ssl urlp_sub(action) -i reporting
acl server_ssl urlp_sub(action) -i account_management
acl server_ssl hdr(host) -i example.com
acl server_ssl hdr_sub(host) -i example.com
use_backend proxybackend if server_ssl
default_backend SSLappAPI
option forwardfor
backend appUI
server ui-server 127.0.0.1:8080 check maxconn 50#ui <- leave this format to allow for selective script replacement
backend appAPI
server api-server 127.0.0.1:8080 check maxconn 750#api <- leave this format to allow for selective script replacement
timeout http-keep-alive 0s
backend SSLappAPI
mode tcp
server api-server 127.0.0.1:8443 check maxconn 800#ssl <- leave this format to allow for selective script replacement
backend proxybackend
server proxyserver 127.0.0.1:8080