안녕 Zen Masters,이 기사에서는 Zen Load Balancer API (ZAPI)를 통해 L4 (계층 4) 팜, 몇 개의 백엔드 (웹 서버) 및 팜 보호자를 만들고 구성하는 방법을 설명합니다.
L4xNAT 프로필
L4xNAT 팜 프로필을 사용하면 TCP, UDP 또는 HTTP 팜 프로필과 같은 4 계층의 부하 분산 장치 코어보다 훨씬 높은 성능과 동시 연결을 사용하여 L7 팜을 만들 수 있습니다. 이 레이어의 4 성능 향상은 7 프로필이 관리 할 수있는 고급 콘텐츠 처리를 방해합니다.
또한 L4xNAT 팜은 다른 계층 7 프로필과 함께 사용되는 가상 포트 하나뿐 아니라 다양한 포트를 바인딩 할 수 있습니다. L4xNAT 팜에서 가상 포트 범위 또는 특정 가상 포트를 선택할 수 있으려면 프로토콜 유형을 선택해야합니다. 다른 경우 팜은 가상 IP의 모든 포트에서 수신 대기합니다.
ZAPI 초기화
마지막 기사에서 설명한 것처럼 zapi 사용자를 활성화하고 ZAPI를 사용하기 위해 키와 암호를 설정해야합니다.
다음 예제에서는 이러한 매개 변수가 사용됩니다.
Key: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5 Password: admin Zen Load Balancer IP: 192.168.101.25 Zen Web Port: 444
ZAPI가 구성되면… 시작합시다!
ZAPI를 사용하여 L4xNAT 팜을 만드는 방법
먼저, 해당 명령을 사용하여 L4xNAT 프로필 팜을 만들어야합니다.
curl --tlsv1 -k -X POST -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"interface":"eth0","vip":"192.168.101.25","profile":"L4xNAT"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM
HTTP 동사 : 팜, 백엔드, 서비스 생성에 사용되는 POST ...
JSON 매개 변수 : 인터페이스, VIP 및 프로필 (L4xNAT 프로필에는 vport가 필요하지 않습니다.)
URI 매개 변수 : farmname-> L4FARM, 이것은 팜에 대해 선택된 이름입니다.
이 명령을 실행하면 다음과 같은 응답이 표시됩니다.
{ "description" : "New farm L4FARM", "params" : [ { "interface" : "eth0", "name" : "L4FARM", "profile" : "L4xNAT", "vip" : "192.168.101.25", "vport" : 0 } ] }
이 응답은 기본 팜 매개 변수를 보여줍니다. vport : 0의 의미는 무엇입니까? L4xNAT 팜을 만들면 기본적으로 가상 IP의 모든 포트에서 수신 대기하며 0 또는 *로 표시됩니다.
ZAPI를 사용하여 L4xNAT 팜을 구성하는 방법
L4xNAT 팜이 생성되면 팜 매개 변수를 수정할 수 있습니다. 모든 매개 변수를 몇 개 또는 하나만 변경할 수 있습니다.
먼저 GET 요청으로 팜 매개 변수를 가져옵니다.
curl --tlsv1 -k -X GET -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM
HTTP 동사 : GET, 팜, 백엔드, 서비스 매개 변수를 가져 오는 데 사용됩니다.
JSON 매개 변수 : 없음.
URI 매개 변수 : farmname-> L4FARM.
이 명령을 실행하면 다음과 같은 응답이 표시됩니다.
{ "backends" : [], "description" : "List farm L4FARM", "params" : [ { "algorithm" : "weight", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "dnat", "persistence" : "none", "protocol" : "all", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 0 } ] }
이 응답에는 고급 팜 매개 변수가 표시됩니다. 이 매개 변수는 ZAPI를 사용하여 수정할 수 있습니다. 몇 가지 매개 변수를 변경해 보겠습니다.
curl --tlsv1 -k -X PUT -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"protocol":"tcp","nattype":"nat" ,"port":"80"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM
HTTP 동사 : PUT, 팜, 백엔드, 서비스 매개 변수를 수정하는 데 사용됩니다.
JSON 매개 변수 : protocol, nattype 및 port
URI 매개 변수 : farmname-> L4FARM.
이 명령을 실행하면 다음과 같은 응답이 표시됩니다.
{ "description" : "Modify farm L4FARM", "params" : [ { "protocol" : "tcp" }, { "port" : "80" }, { "nattype" : "nat" } ] }
다른 GET 요청을 실행하면 응답에 모든 매개 변수가 새로운 변경 사항으로 표시됩니다.
{ "backends" : [], "description" : "List farm L4FARM", "params" : [ { "algorithm" : "weight", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "nat", "persistence" : "none", "protocol" : "tcp", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 80 } ] }
nattype, 포트 및 프로토콜 매개 변수가 성공적으로 변경되었습니다!
백엔드를 만들고 수정하는 방법
ZAPI를 통해 L4xNAT 팜의 백엔드를 만들고 구성하려면 어떻게해야합니까? curl 명령을 사용하여 위의 동일한 단계를 따라하면됩니다.
curl --tlsv1 -k -X POST -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"ip":"46.120.34.160","port":"80","priority":"1","weight":"1"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends
HTTP 동사 : 팜, 백엔드, 서비스 생성에 사용되는 POST ...
JSON 매개 변수 : ip, port, priority 및 weight (모든 매개 변수가 필요합니다).
URI 매개 변수 : farmname-> L4FARM, 이것은 팜에 대해 선택된 이름입니다.
이 명령을 실행하면 다음과 같은 응답이 표시됩니다.
{ "description" : "New backend 0", "params" : [ { "id" : 0, "ip" : "46.120.34.160", "port" : 80, "priority" : 1, "weight" : 1 } ] }
이 응답은 백엔드 매개 변수와 해당 ID를 표시합니다.
L4xNAT 팜의 백엔드를 어떻게 수정할 수 있습니까? curl과 함께 PUT HTTP 동사 사용 :
curl --tlsv1 -k -X PUT -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"ip":"46.120.101.65","port":"25","priority":"2","weight":"3"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends/0
HTTP 동사 : PUT, 팜, 백엔드, 서비스 매개 변수를 수정하는 데 사용됩니다.
JSON 매개 변수 : ip. 포트, 우선 순위 및 무게.
URI 매개 변수 :
농장 이름-> L4FARM.
백엔드 ID-> 0.
이 명령을 실행하면 다음과 같은 응답이 표시됩니다.
{ "description" : "Modify backend 0 in farm L4FARM", "params" : [ { "ip" : "46.120.101.65" }, { "weight" : "3" }, { "priority" : "2" }, { "port" : "25" } ] }
다른 GET 요청을 실행하면 응답에 모든 매개 변수가 새로운 변경 사항으로 표시됩니다.
{ "backends" : [ { "id" : 0, "ip" : "46.120.101.65", "port" : 25, "priority" : 2, "weight" : 3 } ], "description" : "List farm L4FARM", "params" : [ { "algorithm" : "weight", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "nat", "persistence" : "none", "protocol" : "tcp", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 80 } ] }
무게, 우선 순위 및 포트 매개 변수가 성공적으로 변경되었습니다!
Farm Guardian을 구성하는 방법
종료하려면 L4xNAT 팜의 팜 가디언을 구성하겠습니다. curl과 함께 다음 요청을 사용해야합니다.
curl --tlsv1 -k -X PUT -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"fgenabled":"true","fgscript":"check_tcp -w 10 -c 10 -H HOST -p PORT","fgtimecheck":"15","fglog":"false"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/fg
HTTP 동사 : PUT, 팜, 백엔드, 서비스 매개 변수를 수정하는 데 사용됩니다.
JSON 매개 변수 : fgenabled, fgscript, fgtimecheck 및 fglog
URI 매개 변수 : farmname-> L4FARM.
이 명령을 실행하면 다음과 같은 응답이 표시됩니다.
{ "description" : "Modify farm L4FARM", "params" : [ { "fglog" : "false" }, { "fgenabled" : "true" }, { "fgscript" : "check_tcp -w 10 -c 10 -H HOST -p PORT" }, { "fgtimecheck" : "15" } ] }
이 매개 변수는 무엇을합니까? 'fgenabled'매개 변수는 팜 가디언을 활성화하고, 'fgtimecheck'매개 변수는 확인 간격 (초), 'fglog'는 팜 가디언 로그를 활성화하고, 'fgscript'는 확인할 명령입니다.
Zen Team을 대신하여이 기사를 즐겁게 읽었 으면합니다. 다음에 보자!