以下のように同一IP同一ポートでの接続をドメイン名で切り替える設定を行いたいと思います。
※Webサーバ1をフロントサーバにして・・・と最初考えたのですがApacheが80番ポートを
使用しており、HAProxyと競合してしまったので、別途フロントサーバ(リバースプロキシサーバ)を立てました。
※PoundはAlmaLinuxでうまくインストールできませんでした。。。
※フロントサーバはAlmaLinux9です。。
AlmaLinux9をインストールしdnf -y update等を行いサーバを作成します。
※ファイアーウォールが有効な場合は80番ポートを開放する必要があります。
以下のコマンドを実行しHAProxyをインストールします。
dnf -y install haproxy
以下のコマンドを実行し設定ファイルを開きます。(viの使い方は省略します)
vi /etc/haproxy/haproxy.cfg
デフォルトで入っているfrontend~とbackend~で始まる箇所を全部#でコメントアウトします。
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
#frontend main
# bind *:5000
# acl url_static path_beg -i /static /images /javascript /stylesheets
# acl url_static path_end -i .jpg .gif .png .css .js
#
# use_backend static if url_static
# default_backend app
#
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
#backend static
# balance roundrobin
# server static 127.0.0.1:4331 check
#
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
#backend app
# balance roundrobin
# server app1 127.0.0.1:5001 check
# server app2 127.0.0.1:5002 check
# server app3 127.0.0.1:5003 check
# server app4 127.0.0.1:5004 check
一番下に以下の内容で追記し、ファイルを保存します。
frontend web_proxy
default_backend web_servers
use_backend web2_servers if { query -m str <Webサーバ2のドメイン> }
bind *:80
backend web_servers
server web01 <Webサーバ1のローカルIPアドレス>:80
backend web2_servers
server web10 <Webサーバ2のローカルIPアドレス>:80
以下は例です。
# Webサーバ1のドメイン名がaaa.comでWebサーバ2のドメイン名がbbb.com
# Webサーバ1のIPアドレスは192.168.1.101
# Webサーバ2のIPアドレスは192.168.1.102
frontend web_proxy
default_backend web_servers
use_backend web2_servers if { query -m str bbb.com }
bind *:80
backend web_servers
server web01 192.168.1.101:80
backend web2_servers
server web10 192.168.1.102:80
以下のコマンドを実行しHAProxyを起動します。
systemctl restart haproxy
以下のコマンドを実行しHAProxyをOS起動時に開始させるようにします。
systemctl enable haproxy
フロントサーバのローカルIPアドレスで80番ポートを開放します。
ドメインごとにアクセスし異なるWebサイトが表示されれば成功です!