まず、二種類のユーザー(suzuki/suzuki2)を用意します。
# cat /etc/httpd/conf/suz-lab.htpasswd suzuki:xxxxxxxx suzuki2:yyyyyyyy
次に、二つのバーチャルホストに対して同じユーザーでのBasic認証をかけておきます。
# cat /etc/httpd/conf/httpd.conf ... Listen 81 Listen 82 ..DocumentRoot /var/www/81 AuthUserFile /etc/httpd/conf/suz-lab.htpasswd AuthName suz-lab AuthType Basic Require valid-user DocumentRoot /var/www/82 AuthUserFile /etc/httpd/conf/suz-lab.htpasswd AuthName suz-lab AuthType Basic Require valid-user
そして、HAProxyを下記のように設定します。
# cat /etc/haproxy/haproxy.cfg ... userlist suz-lab user suzuki insecure-password suzuki!23 frontend proxy bind 0.0.0.0:80 acl auth_ok http_auth(suz-lab) use_backend local81 if auth_ok default_backend local82 backend local81 balance leastconn server local81 localhost:81 check port 81 backend local82 balance leastconn server local82 localhost:82 check port 82
ユーザーがsuzukiの場合、81番ポートのバーチャルホストに振り分けられ、
それ以外(suzuki2)の場合、82番ポートのバーチャルホストに振り分けられます。