본문 바로가기

프로그래밍/아파치

bandwidth apache 속도제한하기

반응형


<IfModule mod_bandwidth.c>
    BandWidthModule On

    #
    # 문  법: BandWidth <도메인|IP주소|all> <속도>
    # 기본값: 없음
    # 사용처: 전체 설정, 디렉토리별 설정, .htaccess
    #
    # 호스트에 따라 속도의 제한을 걸 수 있다. all은 모든 호스트에
    # 대해서 제한을 거는 것이며 도메인이나 IP주소로 접속 호스트를
    # 지정할 수 있다. 그리고 네트워크/마스크 포맷*으로 지정할 수도
    # 있다. (예: 192.168.0.0/24)
    #
    # 속도는 Bytes/second로 지정을 하며 0의 경우는 제한이 없다.
    #
    # 디렉토리별 설정 예
    #
    # <Directory /home/httpd/html>
    #   BandWidth 192.168.1 0
    #   BandWidth foobar.net 0
    #   BandWidth all 1024
    # </Directory>
    #
    # /home/httpd/html 디렉토리에서의 제한을 한 것이다. 192.168.1.*
    # IP 주소를 가진 호스트와 *.foobar.net이라는 도메인명을 사용하는
    # 호스트에 대해서는 제한을 걸지 않으며 그 외 모든 접속에 대해서
    # 1024Bytes/sec으로 제한을 한다.
    #

    BandWidth       all     0

    #
    # 문  법: LargeFileLimit <파일크기> <속도>
    # 기본값: 없음
    # 사용처: 전체 설정, 디렉토리별 설정, .htaccess
    #
    # 일정 이상의 크기를 가진 파일을 누군가가 받아 가려 할 때
    # 그 속도의 제한을 걸 수 있다. 파일크기는 KByte 기준이며 속도는
    # 역시 Bytes/secound 이다.
    #
    # LargeFileLimit 1024 4096
    # LargeFileLimit 2048 2048
    #
    # 위 예제는 1024 ~ 2047KB 크기의 파일을 받아가려 할 때 속도를
    # 4KB/sec으로 제한하고 2048KB 이상의 파일은 2KB/sec으로 제한을
    # 하는 것이다.
    #
    # LargeFileLimit 1024 4096

    #
    # 문  법: MinBandWidth <도메인|IP주소|all> <속도>
    # 기본값: all, 256
    # 사용처: 전체 설정, 디렉토리별 설정, .htaccess
    #
    # 데이타 전송의 최저 속도를 지정한다.
    #
    # BandWidth를 4096 (4KBytes/sec)으로 지정하고 MinBandWidth가
    # 1024로 지정이 되어 있을 때:
    #
    #   - 지정된 호스트에서 하나만 접속할 경우, 4096bytes/sec이
    #     최고의 속도가 된다.
    #
    #   - 지정된 호스트에서 두개가 동시에 접속할 경우, 각각의 세션에
    #     대해 2048Bytes/sec이 최고의 속도가 된다.
    #
    #   - 더 많은 동시 접속이 일어나도 세션 당 최고 속도는
    #     1024Bytes/sec 이하로는 줄지 않는다.
    #     (MinBandWidth 값이 1024기 때문에)
    #
    # MinBandWidth가 "-1"로 지정되면 모든 세션에 대해 최고 속도는
    # BandWidth나 LageFileLimit에서 지정한 속도가 나올 수 있게 된다.
    #
    # BandWidth를 4096으로 지정하고 MinBandWidth가 -1이라면 동시에
    # 지정된 호스트에서 몇개의 접속을 하더라도 각 세션의 속도는
    # 4096Bytes/sec 까지 나오게 되는 것이다.
    #
    MinBandWidth    all     -1
  </IfModule>

  IfModule 이라는 지시자는 module을 올렸을 경우에만 작동을 가능하게 해 주는 지시자 이다.
  즉 Module로 올라와 있지 않을 경우에는 작동을 하지 않는다.


-----------------------------
* httpd.conf 설정예
-----------------------------

<IfModule mod_bandwidth.c>
   BandWidthModule On
   BandWidthDataDir /tmp/apachebw

    <Directory /home2/rootman>
        BandWidth all 512000
         LargeFileLimit 1024 300000
         LargeFileLimit 4096 50000
    </Directory>
    BandWidth       all     0
</IfModule>

 

-----------------------------------------------------------------------------------------
[root@rootman root]# mkdir -p /tmp/apachebw/link
[root@rootman root]# mkdir /tmp/apachebw/master
[root@rootman root]# chown root.nobody -R /tmp/apachebw
[root@rootman root]# chmod 770 -R /tmp/apachebw
 
 

반응형