HAProxy : ACL の設定2024/04/16 |
HAProxy の ACL の設定です。
当例では以下のような環境で設定します。 -----------+-------------+ | | |10.0.0.30 | +----------+-----------+ | | [ dlp.srv.world ] | | | HAProxy | | +----------------------+ | | -------------+-----------+--------------+---------- | | | |10.0.0.51 | |10.0.0.52 +-----------+----------+ | +-----------+----------+ | [ node01.srv.world ] | | | [ node02.srv.world ] | | Web Server#1 | | | Web Server#2 | +----------------------+ | +----------------------+ | -------------+-----------+--------------+---------- | | |10.0.0.53 |10.0.0.31 +-----------+----------+ +-----------+----------+ | [ node03.srv.world ] | | [ www.srv.world ] | | Web Server#3 | | Web Server#4 | +----------------------+ +----------------------+ |
[1] |
ACL の書式は下記の通りです。 acl <aclname> <criterion> [flags] [operator] [<value>] ...
<aclname> は任意の ACL 名称、[operator] は一部の criteria で使用可能です。 ⇒ https://www.haproxy.com/documentation/hapee/latest/onepage/#7.3.6 使用頻度が高そうな criteria や flag は以下の通りです。
|
[2] | HAProxy の設定例です。 |
root@dlp:~ #
vi /usr/local/etc/haproxy.conf # 最終行に追記 frontend http-in bind *:80 # ACL を定義 # HTTP リクエストヘッダーの [Host] が [node01.srv.world] acl host_node01 hdr(Host) -i node01.srv.world # HTTP リクエストヘッダーの [Host] が [node02] で始まる acl host_node02 hdr_beg(Host) -i node02 # HTTP リクエストヘッダーの [Host] に [develop] が含まれる acl host_node03 hdr_sub(Host) -i develop # HTTP リクエストヘッダーの [Host] の ドメイン名部分が [virtual.host] acl host_virtual_host hdr_dom(Host) -i virtual.host # HTTP リクエストの PATH の部分が [/work] で始まる acl path_workdir path -m beg /work # HTTP リクエストの PATH の部分に [test] が含まれる acl path_testdir path_sub -i test # HTTP リクエストのクエリー部分に [script] が含まれる acl query_script query -m sub script # アクセス元 クライアント IP が [10.0.0.5/32] acl src_ip src -m ip 10.0.0.5/32 # 各 ACL にマッチした場合の動作を設定 use_backend www_node01 if host_node01 || path_workdir use_backend www_node02 if host_node02 || path_testdir use_backend www_node03 if host_node03 || query_script use_backend www_default if host_virtual_host || src_ip default_backend www_default backend www_node01 server node01 10.0.0.51:80 check backend www_node02 server node02 10.0.0.52:80 check backend www_node03 server node03 10.0.0.53:80 check backend www_default server www_default 10.0.0.31:80 check service haproxy reload |
[3] | 任意のクライアントコンピューターから HAProxy サーバーへアクセスして設定通りの動作となるか確認しておくとよいでしょう。 |
Sponsored Link |