
저는 CentOS 6.4를 사용하고 있으며 Plesk v11.5.30을 사용하고 있지만 반드시 plesk를 통해 수행할 필요는 없습니다.
특정 웹사이트에 대한 연결 속도를 제한하려고 합니다. 그러나 Plesk가 제공하는 유일한 옵션은 "최대 대역폭 사용량"과 "연결 제한"입니다.
최대 대역폭 사용량은 도메인에서 사용하는 총 대역폭인 반면 연결은 연결 수입니다(분명히). 내가 원하는 것은 도메인에 액세스하는 사람 수에 관계없이 속도를 200kb/s로 제한하는 것입니다. 한 사람만 접속하더라도 대역폭을 다 사용하지 않고 200kb/s로 제한하고 싶습니다.
누구도 200kb/s 이상을 사용할 수 없도록 모든 개별 연결을 200kb/s로 제한할 수 있는 방법이 있습니까? 물론 트래픽이 높으면 200kb/s 미만을 사용할 수도 있습니까?
이것이 plesk에 국한되는 것을 피하기 위해 이것이 내 conf에 있는 것이며 사용할 수 있는 다른 매개변수가 있는 경우 수동으로 수정하겠습니다.
<IfModule mod_bw.c>
BandwidthModule On
ForceBandWidthModule On
Bandwidth all "0"
MaxConnection all "0"
BandWidthError 510
</IfModule>
답변1
저는 이 모듈을 사용해본 적이 없지만문서상당히 솔직해 보입니다.
지시어는 <VirtualHost>
블록 내에서 유효하며 그렇다면 해당 가상 호스트에만 적용됩니다. 또한 구성의 상위 부분에서 상속되지 않는 것처럼 보이므로 모든 관련 지시어를 가상 호스트에 넣어야 합니다.
현재 구성은 대역폭 제한을 "0"으로 설정합니다. 이는 제한이 없음을 의미합니다. 200KB를 원합니다(킬로비트가 아니라 킬로바이트를 의미한 것으로 가정합니다).
제한하려는 가상 호스트에 다음을 입력하세요.
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 204800
기본값 MinBandwidth
은 256바이트/초이므로 오류 메시지가 나타나기 전에 800명의 동시 사용자를 처리할 수 있습니다. 256바이트/초가 약간 낮다고 생각되면 추가할 수도 있습니다. MinBandwidth all 1024
즉, 200개 이상의 동시 요청이 있는 경우 201번째는 요청한 페이지 대신 오류 메시지를 받게 되고 그 이전의 200개는 모두 오류 메시지를 받게 됩니다. 최소 1KB/s를 보장합니다.
나는 일반적으로 이러한 블록에 대해 신경 쓰지 않습니다. <IfModule>
왜냐하면 그들이 하는 일은 실수를 숨기고 mod_bw가 로드되지도 않았는데 작동한다고 생각하게 만드는 것뿐이기 때문입니다.
답변2
LargeFileLimit을 사용하여 이것을 알아냈습니다.
<IfModule mod_bw.c>
BandwidthModule On
ForceBandWidthModule On
Bandwidth all "52428800"
MaxConnection all "400"
LargeFileLimit * 1024 204800
BandWidthError 510
</IfModule>
이는 도메인이 50mb 대역폭(52428800)으로 제한되고, 한 번에 400개의 연결만 가질 수 있으며, 1mb를 초과하는 모든 파일은 200kb/s(204800)로 제한된다는 것을 의미합니다.
나중에 이 글을 읽는 사람이라면 * 대신 확장자를 넣어 zip, rar,avis 등을 제한할 수도 있습니다.