메뉴 건너뛰기

조회 수 1129 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Apachectl 버전 확인
[root@cakeon ~]# /usr/local/httpd/bin/apachectl -v
Server version: Apache/2.2.16 (Unix)
Server built:   Aug 21 2010 16:10:06

1. Cband 설치(mod-cband-0.9.7.5.tgz)
[root@cakeon mod-cband-0.9.7.5]# wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz

mod-cband-0.9.7.5.gz

 

 

[root@localhost src]# vi /usr/local/src/mod_cband/src/mod_cband.c

 

 

2467 "\n<style type=\"text/css\">\n"
2468 "body       { font-family: sans; font-size: 10pt; }\n"
2469 "table      { font-family: tachoma, helvetica, verdana, sans; border: 1px solid #d0d0d0; }\n"
2470 "tr     { font-family: tachoma, helvetica, verdana, sans; border: 1px solid #d0d0d0; }\n"
2471 "td     { padding-left: 0.5em; padding-right: 9pt; }\n"
2472 "td.refresh { background-color: #0de2cb; text-align: right; }\n"
2473 "td.speed   { background-color: #ffa1a1; text-align: left; }\n"
2474 "td.speedc  { background-color: #ffb1b1; text-align: left; }\n"
2475 "td.remote_odd  { background-color: #b4bfff; text-align: left; }\n"
2476 "td.remote_even { background-color: #bfcfff; text-align: left; }\n"
2477 "a      { text-decoration: none; color: #606060; }\n"
2478 "a:hover    { text-decoration: underline; }\n"
2479 "h1, h2     { font-family: tachoma, helvetica, verdana, sans}\n"
2480 ".small     { font-size: smaller; }\n"
2481 "div.section    { margin-top: 20px; margin-bottom: 10px; }\n"
2482 "div.footer { margin-top: 40px; text-align: center; font-size: smaller; }\n"
2483 "</style>\n\n";

 

[root@cakeon mod-cband-0.9.7.5]# ./configure --with-apxs=/usr/local/httpd/bin/apxs
[root@cakeon mod-cband-0.9.7.5]# make && make install

 

 


2. 모듈 확인(설치 후 자동 생성)
[root@cakeon ~]# vi /usr/local/httpd/conf/httpd.conf
LoadModule cband_module         modules/mod_cband.so

참고) 모듈 설치시 자동으로 위의 내용이 생성됩니다.

3. httpd.conf mod_cband.c 설정(추가)
[root@byungun ~]# vi /usr/local/apache2/conf/httpd.conf
----------------------------------------------------------------------------------------------
<IfModule mod_cband.c>
        <Location /cband-status>
                SetHandler cband-status
        </Location>
        <Location /cband-status-me>
                SetHandler cband-status-me
        </Location>
        <Location /~*/cband-status-me>
                SetHandler cband-status-me
        </Location>
        <Location /cband-status>
                SetHandler cband-status
                Order deny,allow
                Deny from all
                Allow from all
        </Location>
</IfModule>
 

 

 


1. mod_cband 설치 (최신버전):://cband.linux.pl/)

http://www.sfr-fresh.com/unix/privat/mod-cband-0.9.7.5.tgz/
[root@manage src]# wget http://www.sfr-fresh.com/unix/privat/mod-cband-0.9.7.5.tgz
[root@manage src]# tar xvzfp mod-cband-0.9.7.5.tgz
[root@manage src]# cd mod-cband-0.9.7.5
[root@manage mod-cband-0.9.7.5]# ./configure --with-apxs=/usr/local/apache/bin/apxs
[root@manage mod-cband-0.9.7.5]# make
[root@manage mod-cband-0.9.7.5]# make install


2. 아파치 환경설정에서의 cband 설정
cband 모듈 또한 throttle와 마찬가지로 3rd-party 모듈이기 때문에 아파치에서 설정을 합니다.

  1. [root@localhost]# vi /etc/httpd/conf/httpd.conf
  2. <IfModule mod_cband.c>
  3.     <Location /cband-status>
  4.         SetHandler cband-status
  5.         Order Deny,Allow
  6.         Deny from All
  7.         Allow from 127.0.0.1 100.100.100.100
  8.     </Location>
  9.  
  10.     <Location /cband-me>
  11.         SetHandler cband-status-me
  12.         Order deny,allow
  13.         Deny from all
  14.         Allow from all
  15.     </Location>
  16. </IfModule>

※ SetHandler 설명
cband-status -> 관리자 페이지 입니다. 따라서 접근을 허용할 IP를 입력해주셔야 됩니다.
cband-me -> 사용자 페이지 입니다.

3. cband 적용
cband는 각 호스트에 대해서 여러가지 지시자를 사용하여 설정 할 수 있습니다.
아래는 여러가지 지시자중 하나인 가장 많이 사용되는 CbandLimit을 사용한 예제 입니다.

 
  1. ※ 각각의 호스트에 따로따로 설정해줄 때
  2. <VirtualHost 192.168.0.1>
  3.     ServerName foobar.com
  4.     ServerAlias www.foobar.com
  5.     DocumentRoot /home/foobar/public_html
  6.     ErrorLog logs/foobar-err
  7.     CustomLog logs/foobar-acc combined
  8.     CBandLimit 100Mi
  9.     CBandPeriod 1D
  10. </VirtualHost>

※ 위 설정은 1Day 동안 100M의 트래픽을 허용하겠다는 설정입니다.

 
  1. ※ 하나의 유저(foobar)가 여러개의 호스트를 사용하고 있는 경우 (트래픽 공유)
  2. <CBandUser foobar>
  3.     CBandUserLimit 100Mi
  4.     CBandUserPeriod 1D
  5. </CBandUser>
  6.  
  7. <VirtualHost 192.168.0.1>
  8.     ServerName foobar.com
  9.     ServerAlias www.foobar.com
  10.     DocumentRoot /home/foobar/public_html
  11.     ErrorLog logs/foobar-err
  12.     CustomLog logs/foobar-acc combined
  13.     CBandUser foobar
  14. </VirtualHost>
  15.  
  16. <VirtualHost 192.168.0.1>
  17.     ServerName foobar2.com
  18.     ServerAlias www.foobar2.com
  19.     DocumentRoot /home/foobar2/public_html
  20.     ErrorLog logs/foobar2-err
  21.     CustomLog logs/foobar2-acc combined
  22.     CBandUser foobar
  23. </VirtualHost>

※ 위 설정은 foobar 유저에게 1Day 동안 100M의 트래픽을 허용하겠다는 설정이며,
foobar.com과 foobar2.com에서 foobar 유저의 트래픽을 공유해서 사용하겠다는 것입니다.

4. cband 단위
- 전송속도 단위

 
kbps, Mbps, Gbps - bits per second, 의미: 1024, 1024*1024, 1024*1024*1024 bps
kb/s, Mb/s, Gb/s - bytes per second, 의미: 1024, 1024*1024, 1024*1024*1024 b/s
기본값 : kbps

- 트래픽 제한 단위
 
K, M, G - bytes, 의미: 1000, 1000*1000, 1000*1000*1000 bytes
Ki, Mi, Gi - bytes, 의미: 1024, 1024*1024, 1024*1024*1024 bytes
기본값: K

- 시간 단위
 
S, M, H, D, W - 초, 분, 시간, 일, 주. 의미: 1, 60, 3600, 86400, 604800 Seconds
기본값: S


5. cband 지시자
 
이름: CBandDefaultExceededURL
설명: 제한을 초과했을때 보여줄 URL
문맥: Server config
문법: CBandDefaultExceededURL [URL]
예제: CBandDefaultExceededURL 
http://foobar.com/503.html

이름: CBandDefaultExceededCode
설명: 제한을 초과했을시 보여줄 에러 코드
문맥: Server config
문법: CBandDefaultExceededCode [HTTP_CODE]
예제: CBandDefaultExceededCode 509

이름: CBandScoreFlushPeriod
설명: scoreboard 파일에 기록할 요청수를 정하나, cband 퍼포먼스에 영향을 미칩니다.
기본값: 1
문맥: Server config
문법: CBandScoreFlushPeriod [요청수]
예제: CBandScoreFlushPeriod 100
    100번의 요청이 들어오면 scoreboard 파일에 한번 기록합니다.

이름: CBandSpeed
설명: 가상호스트 도메인의 최대 속도, 요청수, 접속수 설정
문맥: <Virtualhost>
문법: CBandSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제: CBandSpeed 1024 10 30
    호스트에 대해 1024kbps 전송속도로 제한하며, 초당 10개의 요청을 처리하고,
    동시 접속을 30개로 제한합니다.

이름: CBandRemoteSpeed
설명: 호스트 접속자의 최대속도, 요청수, 접속수 제한
문맥: <Virtualhost>
문법: CBandRemoteSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제: CBandRemoteSpeed 20kb/s 3 3
    호스트 접속자에 대해 1024kbps 전송속도로 제한하며,
    초당 10개의 요청을 처리하고, 동시 접속을 30개로 제한합니다.

이름: CBandClassRemoteSpeed
설명: IP class의 최대속도, 요청수, 접속수 제한
문맥: <Virtualhost>
문법: CBandClassRemoteSpeed [class_name] [kbps] [rps]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제:
<CBandClass googlebot_class>
  CBandClassDst 66.249.64/24
  CBandClassDst 66.249.65/24
  CBandClassDst 66.249.79/24
</CBandClass>
CBandClassRemoteSpeed googlebot_class 20kb/s 2 3
googlebot_class 클래스에 대해 20kb/s 전송속도로 제한하며,
초당 10개의 요청을 처리하고, 동시 접속을 30개로 제한합니다.

이름: CBandRandomPulse
설명: 속도 제한을 위해서 임의의 파형을 생성한 다음 처리하는 방법입니다.
문맥: Global
문법: CBandRandomPulse [On/Off]
예제: CBandRandomPulse On

이름: CBandLimit
설명: 제한할 전송량을 설정한다.
문맥: <Virtualhost>
문법: CBandLimit [limit]
    limit - 전송량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)
예제: CBandLimit 10M
    전송량을 10M(10*1000*1000bytes)로 제한한다.
    CBandLimit 10Mi
    전송량을 10M(10*1024*1024bytes)로 제한한다.

이름: CBandClassLimit
설명: IP class에 대해 제한할 전송량 설정
문맥: <Virtualhost>
문법: CBandClassLimit [class_name limit]
    class_name - 클래스 이름
    limit - 전송량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)

이름: CBandExceededURL
설명: 제한을 초과했을때 보여줄 URL
문맥: <Virtualhost>
문법: CBandExceededURL [URL]
예제: CBandExceededURL 
http://foobar.com/503.html

이름 : CBandExceededSpeed
설명: 전송량을 초과했을때의 전송속도 제한 설정
문맥: <Virtualhost>
문법: CBandExceededSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수

이름: CBandScoreboard
설명: 가상호스트의 scoreboard 파일 지정
문맥: <Virtualhost>
문법: CBandScoreboard [path]

이름: CBandPeriod
설명: 제한기간
문맥: <Virtualhost>
문법: CBandPeriod [period]
    period - 사용단위: S(초), M(분), H(시간), D(일), W(주)
예제: CBandPeriod 1D

이름 : CBandPeriodSlice
설명: 기간을 나눌 기간 명시
기본값: slice_len = limit
문법: CBandPeriodSlice [slice_length]
예제: CBandLimit 100G
    CBandPeriod 4W
    CBandPeriodSlice 1W
지정된 제한값을 1주일 단위로 나누어 사용 합니다.
위 설정을 해석하면 4주는 1주일 단위로 나누며, 용량은 100G/4주=25G로 사용 합니다.

이름: <CBandUser>
설명: 새로운 cband 가상 사용자 설정
문맥: Server config
문법: <CBandUser user_name>

이름: CBandUserSpeed
설명: cband 가상 사용자의 속도, 요청수, 동시 접속수 제한
문맥: <CBandUser>
문법: CBandUserSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제: CBandUserSpeed 100kb/s 10 5

이름: CBandUserLimit
설명: cband 가상 사용자의 전송 용량 제한
문맥: <CBandUser>
문법: CBandUserLimit [limit]
    limit - 사용용량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)
예제: CBandUserLimit 10M
    전송량을 10M(10*1000*1000bytes)로 제한한다.
    CBandUserLimit 10Mi
    전송량을 10M(10*1024*1024bytes)로 제한한다.

이름: CBandUserClassLimit
설명: cband 가상 사용자의 IP class에 대해 제한할 전송량 설정
문맥: <CBandUser>
문법: CBandUserClassLimit [class_name] [limit]
    class_name - 클래스 이름
    limit - 전송량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)

이름 : CBandUserExceededURL
설명: cband 가상 사용자의 제한을 초과했을때 보여줄 URL
문맥: <CBandUser>
문법: CBandUserExceededURL URL
예제: CBandDefaultExceededURL 
http://foobar.com/503.html

이름: CBandUserExceededSpeed
설명: cband 가상 사용자의 전송량을 초과했을때의 전송속도 제한 설정
문맥: <CBandUser>
문법: CBandUserExceededSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수

이름: CBandUserScoreboard
설명: cband 가상 사용자의 scoreboard 파일 지정
문맥: <CBandUser>
문법: CBandUserScoreboard [path]

이름: CBandUserPeriod
설명: cband 가상 사용자의 제한기간
문맥: <CBandUser>
문법: CBandUserPeriod [period]
    period - 사용단위: S(초), M(분), H(시간), D(일), W(주)
예제: CBandPeriod 1D

이름: CBandUserPeriodSlice
설명: cband 가상 사용자의 기간을 나눌 기간 명시
기본값: slice_len = limit
문맥: <CBandUser>
문법: CBandUserPeriodSlice [slice_length]
예제: CBandLimit 100G
    CBandPeriod 4W
    CBandPeriodSlice 1W
지정된 제한값을 1주일 단위로 나누어 사용 합니다.
위 설정을 해석하면 4주는 1주일 단위로 나누며, 용량은 100G/4주=25G로 사용 합니다.


6. 통계화면 보기
관리자모드 - 
http://foobar.com/cband-status
관리자모드(xml) - http://foobar.com/cband-status?xml
사용자모드 - http://foobar.com/cband-me
사용자모드(xml) - http://foobar.com/cband-me?xml

7. 통계화면에 아파치 인증 걸기
throttle 강좌에서도 말씀드렸지만 통계화면의 제한은 IP의 형태로 제한을 하는게 정설입니다.
그렇지만 IP가 자주 변경되는 분들은 매번 IP를 변경해주는것도 하나의 일이 될 수 있습니다.
따라서 이런 경우에는 아파치 인증을 걸어서 사용하시면 편리할 것입니다.

 
  1. [root@localhost]# vi /etc/httpd/conf/httpd.conf
  2. <IfModule mod_cband.c>
  3.     <Location /cband-status>
  4.         SetHandler cband-status
  5.         AuthName "트래픽관리 페이지"
  6.         AuthType Basic
  7.         AuthUserFile /home/foobar/.htpasswd
  8.         require valid-user
  9.     </Location>
  10.  
  11.     <Location /cband-me>
  12.         SetHandler cband-status-me
  13.         Order deny,allow
  14.         Deny from all
  15.         Allow from all
  16.     </Location>
  17. </IfModule>
  18. [root@localhost]# htpasswd -c /home/foobar/.htpasswd ID


  1. No Image

    CentOS 7 에 아파치(httpd) 설치

    Date2015.07.16 Views10302
    Read More
  2. No Image

    CentOS 7 에 php 설치하기

    Date2015.07.16 Views7663
    Read More
  3. No Image

    centos 7 계정추가

    Date2015.07.16 Views8598
    Read More
  4. No Image

    CentOS 7 Subversion(SVN)

    Date2015.07.17 Views7648
    Read More
  5. No Image

    CentOS 7 FTP Server 설치

    Date2015.07.17 Views7701
    Read More
  6. centos 7 APM 최신버전 설치 ( mariadb 10.4 / apache 2.4.39 / php 7.3.8 )

    Date2024.02.07 Views46
    Read More
  7. No Image

    CentOS 5.1 + APM(apache 2.2.x + php 5.2.x + mysql5.0.x + Zend 3.0.x) 설치

    Date2016.03.18 Views8686
    Read More
  8. No Image

    centos 4.x 데몬

    Date2014.02.27 Views6875
    Read More
  9. No Image

    CentOS 32Bit 운영체제에서 메모리 4G인식 시키는 방법

    Date2014.02.27 Views7103
    Read More
  10. No Image

    cdrom 마운트 하기

    Date2014.03.26 Views7102
    Read More
  11. No Image

    bitnami Redmine stack 업그레이드기 (1.2.x -> 2.0.x)

    Date2017.07.05 Views6835
    Read More
  12. bind , 네임서버 구축 ( CentOS 6.x)

    Date2016.04.22 Views7089
    Read More
  13. No Image

    bash 스크립트에서 네트워크 정보 확인하기

    Date2014.02.27 Views14276
    Read More
  14. No Image

    APM 소스 설치

    Date2014.02.27 Views7735
    Read More
  15. No Image

    APM 소스 설치

    Date2014.02.27 Views8068
    Read More
  16. No Image

    apache에서 전송 속도 제한하기

    Date2014.02.27 Views6940
    Read More
  17. No Image

    apachec rewrite 사용하기 // www 강제 사용 // HTTP to HTTPS // 특정경로만 HTTP

    Date2016.12.30 Views7081
    Read More
  18. No Image

    apache2 트래픽 모듈 mod_cband 사용법

    Date2019.02.14 Views1129
    Read More
  19. No Image

    APACHE, OHS 400 웹로직 연동후 특정 작업에 400 error

    Date2016.12.30 Views8646
    Read More
  20. No Image

    apache, mod_ssl 설치 (apache 1.3.37버전)

    Date2014.02.27 Views7667
    Read More
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
/ 12

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved