Hey, I’m pretty new to HAProxy. I have HAProxy for OPNSense installed. I need to route the websites like this:
aaa.website.com → 10.0.0.20:3000
bbb.website.com → 10.0.0.20:9001
I’ve followed through a tutorial that uses HAProxy’s GUI, but it doesn’t work like it should’ve. When I go to either URL, it always redirects to 10.0.0.20:9001.
Here’s what I find so far.
- When I disable the bbb.website.com routing, it goes to 10.0.0.20:3000 insteal.
- Nothing changes when I change the conditions between “Host matches”, “Host starts with”, and “Path starts with”
Here’s the config file it generates. Hope you guys can help me figure this out. Where do I do wrong? Thank you.
#
# Automatically generated configuration.
# Do not edit this file manually.
#
global
uid 80
gid 80
chroot /var/haproxy
daemon
stats socket /var/run/haproxy.socket group proxy mode 775 level admin
nbproc 1
nbthread 1
hard-stop-after 60s
no strict-limits
tune.ssl.default-dh-param 2048
spread-checks 2
tune.bufsize 16384
tune.lua.maxmem 0
log /var/run/log local0 info
lua-prepend-path /tmp/haproxy/lua/?.lua
defaults
log global
option redispatch -1
timeout client 30s
timeout connect 30s
timeout server 30s
retries 3
default-server init-addr last,libc
# autogenerated entries for ACLs
# autogenerated entries for config in backends/frontends
# autogenerated entries for stats
# Frontend: aaa.website-frontend ()
frontend aaa.website-frontend
bind <public ip>:443 name <public ip>:443 ssl crt-list /tmp/haproxy/ssl/62860e9ae771b1.85868225.certlist
mode http
option http-keep-alive
default_backend aaa.website-pool
# remove quotes from persistence cookie
http-request replace-header Cookie '^(.*?; )?(SRVCOOKIE=)"([^;"]*)"(;.*)?$' \1\2\3\4
option forwardfor
# tuning options
timeout client 30s
# logging options
# ACL: aaa.website-condition
acl acl_6285f09d52c084.11538800 hdr(host) -i aaa.website.com
# ACTION: aaa.website-rule
use_backend minio-pool if acl_6285f09d52c084.11538800
# Frontend: bbb.website-frontend ()
frontend bbb.website-frontend
bind <PUBLIC IP>:443 name <PUBLIC IP>:443 ssl crt-list /tmp/haproxy/ssl/628b4dc076fb31.08116587.certlist
mode http
option http-keep-alive
default_backend bbb.website-pool
# remove quotes from persistence cookie
http-request replace-header Cookie '^(.*?; )?(SRVCOOKIE=)"([^;"]*)"(;.*)?$' \1\2\3\4
option forwardfor
# tuning options
timeout client 30s
# logging options
# ACL: bbb.website-condition
acl acl_628b4d6be9ca63.54049274 hdr(host) -i bbb.website.com
# ACTION: bbb.website-rule
use_backend bbb.website-pool if acl_628b4d6be9ca63.54049274
# Backend: aaa.website-pool ()
backend aaa.website-pool
# health checking is DISABLED
mode http
balance source
# stickiness
stick-table type ip size 50k expire 30m
cookie SRVCOOKIE prefix
# tuning options
timeout connect 30s
timeout server 30s
http-reuse safe
server AAAWebsite 10.0.0.20:9001 cookie 6285ea40a5676578102176
# Backend: bbb.website-pool ()
backend bbb.website-pool
# health checking is DISABLED
mode http
balance source
# stickiness
stick-table type ip size 50k expire 30m
cookie SRVCOOKIE prefix
# tuning options
timeout connect 30s
timeout server 30s
http-reuse safe
server BBBWebsite 10.0.0.20:3000 cookie 628b4c8a370ce282698357