CentOS 7.x 아파치 2.4.x 다운로드 속도 제한하기



CentOS 에 국한 되는 것은 아니고 아파치 2.4 버전대에 해당되는 기능이다.


2.2 버전대에서는 cband 모듈로 트래픽 제한을 하였었는데


2.4 버전에서는 따로 모듈을 설치하지 않고도 속도 제한이 가능하다.



아무것도 건들지 않은체로 속도 테스트를 해보도록 하겠다.


[root@conoha html]# dd if=/dev/zero of=/var/www/html/100M.bin bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.110541 s, 949 MB/s

[root@conoha html]# cd

[root@conoha ~]# wget http://conoha.ivps.kr/100M.bin

--2016-04-09 10:40:25--  http://conoha.ivps.kr/100M.bin

Resolving conoha.ivps.kr (conoha.ivps.kr)... 133.130.126.29

Connecting to conoha.ivps.kr (conoha.ivps.kr)|133.130.126.29|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 104857600 (100M) [application/octet-stream]

Saving to: ‘100M.bin’


100%[======================================>] 104,857,600  408MB/s   in 0.2s


2016-04-09 10:40:26 (408 MB/s) - ‘100M.bin’ saved [104857600/104857600]


100MB 사이즈의 파일을 만들어서 로컬호스트에서 wget 으로 다운로드 해보니 408MB/s 속도가 나왔다.


로컬이라서 빠른 것은 당연하겠지만 아무튼 속도 제한이 걸린 것으로 볼 수가 없는 속도가 나온다.


[root@virtualbox ~]# wget conoha.ivps.kr/100M.bin

--2016-04-11 10:48:49--  http://conoha.ivps.kr/100M.bin

Resolving conoha.ivps.kr (conoha.ivps.kr)... 133.130.126.29

Connecting to conoha.ivps.kr (conoha.ivps.kr)|133.130.126.29|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 104857600 (100M) [application/octet-stream]

Saving to: ‘100M.bin’


100%[======================================>] 104,857,600 8.71MB/s   in 12s


2016-04-11 10:49:20 (8.63 MB/s) - ‘100M.bin’ saved [104857600/104857600]


이번엔 다른 네트워크의 VirtuaBox 기반 vps 에서 다운로드 받은 결과다. 8.63MB/s 가 나왔다. 69.04Mbps 속도가 나온다.



이제 속도를 제한해 보도록 하겠다.


vi /etc/httpd/conf.modules.d/00-base.conf 파일에서 아래 부분을 찾아서 주석해제


#LoadModule ratelimit_module modules/mod_ratelimit.so


vi /etc/httpd/conf.d/ratelimit.conf 파일에 아래 부분 내용 저장


<IfModule mod_ratelimit.c>
    <Location />
        SetOutputFilter RATE_LIMIT
        SetEnv rate-limit 500
    </Location>
</IfModule>

500 은 500Kbps 의 의미이다. Location 은 특정 디렉토리를 지정할 수도 있다. 위에는 / 루트이므로 전체가 속도 제한이 된다.


아파치 재시작하고 다운로드 속도 테스트를 해보자.


[root@conoha ~]# systemctl restart httpd

[root@conoha ~]# wget http://conoha.ivps.kr/100M.bin

--2016-04-09 10:56:20--  http://conoha.ivps.kr/100M.bin

Resolving conoha.ivps.kr (conoha.ivps.kr)... 133.130.126.29

Connecting to conoha.ivps.kr (conoha.ivps.kr)|133.130.126.29|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 104857600 (100M) [application/octet-stream]

Saving to: ‘100M.bin.3’


100%[======================================>] 104,857,600  522KB/s   in 3m 25s


2016-04-09 10:59:45 (500 KB/s) - ‘100M.bin.3’ saved [104857600/104857600]


정확하게 500KB/s 속도가 나왔다.


속도 제어가 되고 있다는 결과이다.


로컬에서 받더라도 제한이 걸리며, 전체 트래픽에 대한 제한이 아닌 1 커넥션당 제한속도이다.



아파치 2.2 버전대라면 여기를 http://itrooms.tistory.com/111 참고해서 트래픽 제어가 가능하다.



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,