[Apache] Balancer > Linux/Apm

본문 바로가기
사이트 내 전체검색

Linux/Apm

[Apache] Balancer

페이지 정보

작성자 sbLAB 댓글 0건 조회 2,174회 작성일 23-06-08 07:28

본문

Apache Module mod_proxy_hcheck 

https://httpd.apache.org/docs/trunk/mod/mod_proxy_hcheck.html 

https://runebook.dev/ko/docs/apache_http_server/mod/mod_proxy_hcheck 

https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html  //status=+H 


[httpd.conf] 

-----------------------------------------------------------

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so


LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so   <- Dynamic health check of Balancer members (workers) for mod_proxy

LoadModule watchdog_module modules/mod_watchdog.so            <- health check 

-------------------------------------------------------------




[httpd-proxy.conf] - case1 ★

----------------------------------------------------------------------

<IfModule proxy_module>

<IfModule proxy_http_module>


# Off : Reverse Proxy /  On :  Forward Proxy

      ProxyRequests Off


#프록시에 액세스할 수 있는 사용자를 제어

<Proxy *>

      Require all granted

</Proxy>


#서버 상태체크 동작 옵션설정

ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}

ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}

ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/}


<Proxy balancer://mycluster>        

  #http://192.168.0.11/status.php 체크(기본 30초마다)하여 Under maintenance 문자열이 포함되어 있으면 서버연결 비활성화(문자열 없으면 자동 서버 활성화됨) 

 BalancerMember http://192.168.0.11:80 loadfactor=1 retry=1 hcmethod=GET hcexpr=in_maint hcuri=/status.php     

       

 #http://192.168.0.35 체크(10초마다)하여 응답상태가 2xx, 3xx, 4xx 인지확인하여 밸런서 서버로 활성화/비활성화 결정

 BalancerMember http://192.168.0.35:80 loadfactor=1 retry=1 hcmethod=HEAD hcexpr=ok234 hcinterval=10  

       

 #http://192.168.0.45 TCP소켓 연결가능한지 체크(5초마다/3번 연결실패하면 비활성화)하여 밸런서 서버로 활성화/비활성화 결

        BalancerMember http://192.168.0.45:80 hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3        

 

ProxySet lbmethod=byrequests

</Proxy>

 

ProxyPass / balancer://mycluster/

ProxyPassReverse / balancer://mycluster/


</IfModule>

</IfModule>

----------------------------------------------------------------------


[status.php]

<?php

echo "Under maintenance";

?>



[httpd-proxy.conf] - case2

----------------------------------------------------------------------

#

# Implements a proxy/gateway for Apache.

# # Required modules: mod_proxy, mod_proxy_http

#


<IfModule proxy_module>

<IfModule proxy_http_module>


ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}

ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/}

ProxyHCExpr in_maint {hc('body') !~ /Under maintenance/}


<Proxy balancer://mycluster>

       Order deny,allow

       Allow from all

       

       #Active node1

       BalancerMember http://192.168.0.21:80 loadfactor=1 retry=1 hcmethod=GET hcexpr=in_maint hcuri=/status.php      

       

       #Active node2

       BalancerMember http://192.168.0.25:80 loadfactor=1 retry=1 hcmethod=HEAD hcexpr=ok234 hcinterval=10       

       

       #Passive node

       BalancerMember http://192.168.0.45:80 status=+H retry=0

</Proxy> 


ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid

ProxyPassReverse /  http://192.168.0.21:80/

ProxyPassReverse /  http://192.168.0.25:80/

ProxyPassReverse /  http://192.168.0.45:80/



</IfModule>

</IfModule>

------------------------------------------------




댓글목록

등록된 댓글이 없습니다.

회원로그인

접속자집계

오늘
399
어제
482
최대
1,279
전체
221,652

그누보드5
Copyright © sebom.com All rights reserved.