まず、二種類のユーザー(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番ポートのバーチャルホストに振り分けられます。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら