아파치 트래픽이 많을 때


이부분은 트래픽 양이 큰 곳에서 사용하시면 좋습니다.
설정파일에서 참고할 부분들을 적은 것이니, 꼭 이렇게 바꾸실 필요는 없습니다.

MaxKeepAliveRequests 100 -> 10000
웹서버 프로세스가 지속적으로 접속을 유지하면서 처리할 수 있는 요청 개수입니다.

KeepAliveTimeout 15 -> 30
서버에 접속시에 웹페이지 객체들의 전송시 새로운 프로세스를 생성하지 않고 지속적으로 접속을 유지하고 담당하며,
이 클라이언트의 요청에 대한 타임아웃에 대한 값입니다.

StartServers 5 -> 20
MinSpareServers 5 -> 20
MaxSpareServers 10 -> 40
폭주하는 서버일 경우 SpareServer가 많으면 빨리 대처할 수 있습니다.
스탠드얼론 방식일 경우 새로운 접속 요청을 받으면 기존의 Spare Child Process를 포크해 새로운 자식 프로세스를
만들어 내므로 적당히 있어주면 좋습니다.

MaxRequestsPerChild 0 -> 1000
웹서버 프로세스가 일정 횟수의 클라이언트 요청을 처리하고 종료되는 수치입니다.

※ MaxClients 256 -> 1024
동시에 실행될 수 있는 최대 프로세스 수를 제한 하는 것입니다.
하지만 옵션을 1024로 확장하려면 소스레벨에서
아파치 설치전에 apache/src/include/httpd.h 파일에서
HARD_SERVER_LIMIT 256 으로 된것을 1280 으로 변경한후 컴파일 하여야 사용 가능하다.


웹 트래픽 제한 - mod_throttle 모듈 추가
ref.
http://www.snert.com/Software/mod_throttle/


src.
mod_throttle312.tgz

#tar -xvzf mod_throttle312.tgz
#cd mod_throttle312
#make install

자동으로 생성 되는 부분
- /usr/local/apache/libexec/mod_throttle.so
- httpd.conf
------------------------------------------------------
LoadModule throttle_module   libexec/mod_throttle.so
AddModule mod_throttle.c
------------------------------------------------------
추가 해 주는 부분
- httpd.conf
------------------------------------------------------

<IfModule mod_throttle.c>
   ThrottlePolicy none

   <Location /throttle-status>
   SetHandler throttle-status
   </Location>

   <Location /throttle-me>
   SetHandler throttle-me
   </Location>

   <Location /~*/throttle-me>
   SetHandler throttle-me
   </Location>
</IfModule>

<VirtualHost x.x.x.x>
   ...
   ThrottlePolicy None
</VirtualHost>
------------------------------------------------------
아파치를 DSO 방식으로 설치 했을 경우, 위처럼 간략하게 추가 해줌.
자세한 설정은 홈페이지를 참조하자.

인증인 필요한 경우,
#htpasswd -c .htpasswd admin   <- admin 계정 생성
Location 필드 안에 다음 부분을 추가해 주도록 한다.
--------------------------------------------------------

       AuthType Basic
       AuthName "THROTTLE LOGIN"
       AuthUserFile /usr/local/apache/conf/.htpasswd
       <Limit GET POST>
               order deny,allow
               deny from all
               allow from all
               require user admin
       </Limit>
-------------------------------------------------------
admin이라는 계정에게 로그인을 허용함.

많은 가상 호스트를 위한 처리쉘~
#perl -pi -e "s/</VirtualHost>/ThrottlePolicy None
</VirtualHost>/g" virtualhost.conf

이미지 호스팅 서비스시에, 사용자 별로 확인 할때는,
- httpd.conf

-----------------------------------------------
<IfModule mod_throttle.c>  
   ...
   ThrottleUser  A  none
   ThrottleUser  B  none
   ...
</IfModule>


ref.
man page

SETTING
#mount -o remount, usrquota /home
#quotacheck -vmc /home
-----------------------------------------------------------
- v quotacheck reports its operation as it progresses. Normally it operates silently.
- m Don't try to remount filesystem read-only.
- c Don't read existing quota files. Just perform a new scan and save it to disk.
- quotacheck also skips scanning of old quota files when they are not found.
-----------------------------------------------------------
/home/aquota.user 라는 파일이 생성된다.
#quotaon -avu
-----------------------------------------------------------
-a All automatically mounted...
-v Display a message for each filesystem where quotas are turned on.
-u Manipulate user quotas. This is the default.
-----------------------------------------------------------
쿼터를 실행한다. 정지할때는, #quotaoff -avu
#quota -v
-----------------------------------------------------------
-v will display quotas on filesystems where no storage is allocated.
-----------------------------------------------------------
쿼터의 정보를 확인 하고. (and #repquota -a)
#edquota -u USER
-----------------------------------------------------------
Disk quotas for user juhoon (uid 500):
Filesystem  blocks     soft     hard   inodes soft  hard
/dev/hda10  50340    300000  400000     13     0     0
-----------------------------------------------------------
USER에 대한 디스크 사용량을 제한 한다.
grace period(default 7day)동안 400M까지 사용가능 하고, 이후에는 300M 미만이 아니면 파일을 쓸수 없다.

USER1을 프로토로, PID 500번 이상의 계정들에 모두 적용.
edquota -p USER1 `awk -F: '$3 > 499 {print $1}' /etc/passwd`

GROUP은 usrquota 대신, qrpquota를 이용하며 방법은 비슷하다.


 


more : 개그이야기-http://ezstock.kr 우린친구닷컴-http://urin79.com



태초에 나는 개그이야기를 만들었다.
내말을 믿고 나를 따르면 천당,
내말을 믿지않고 나를 따르지 않으면 지옥,
나는 하늘나라(우주)에 사느니라.

그럼 난 외계인?