처음깔고서부터 pure-ftpd + apache 2.0 + mysql 5.0 + php4 까지

Category :: 운영체제/FreeBSD


 산적님의 요청으로 끄적거려봅니다.

 cvsup을 이용하여 ports tree를 다운로드 받기위해 cvsup-without-gui를 pkg_add로 설치합니다.
# pkg_add -r cvsup-without-gui


 설치된 패키지를 사용하기 위해..
# rehash


 설치된 패키지를 이용하여 ports tree를 check out 합니다.
# cvsup -g -L 2 -h cvsup.oper.or.kr /usr/share/examples/cvsup/ports-supfile


처음으로 pure-ftpd를 설치합니다.
# cd /usr/ports/ftp/pure-ftpd
# make install clean


 이제 apache 2.0 을 설치합니다. (apache 설정을 위한 httpd.conf 파일은 이따가 설정합니다.)
# cd /usr/ports/www/apache20
# make install clean


 mysql 5.0 을 설치합니다.
# cd /usr/ports/databases/mysql50-server
# make install clean WITH_CHARSET=euckr


 이제 PHP4 ! 먼저 apache에서 모듈로 로딩해서 사용하기 위해 mod_php4를 설치하도록 설정합니다.
# cd /usr/ports/lang/php4
# make config
사용자 삽입 이미지

 갖가지 extension들을 설치하기 위해 다음 디렉토리로 이동하여 설치하되 설정값은 기본값으로 두는 것을 권장하며 추가로 필요로 하는 것들을 체크하시면 됩니다. (mysql 등)
# cd /usr/ports/lang/php4-extensions
# make config install clean


  이까지 별다른 문제 없이 따라왔다면 이제 갖가지 설정을 합니다.
  pure-ftpd의 경우 sample 파일을 복사하는 것만으로도 충분합니다. 더 자세한 설명이 필요한 경우 이곳을 참고하세요.
# cd /usr/local/etc
# cp pure-ftpd.conf.sample pure-ftpd.conf


  다음은 php.ini를 설정합니다. php.ini-dist와 php.ini-recommended 두가지 중 편하신 것을 사용하면 됩니다만, 어느 것을 사용하든 열고 수정해주긴 해야되지 않을까 합니다.
# cp php.ini-recommended php.ini


  apache의 경우 httpd.conf를 설정해야되고.. 우선 설정파일에서 ServerAdmin과 ServerName 수정합니다.
# cd /usr/local/etc/apache2


>>> httpd.conf <<<
#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. admin@your-domain.com
#
ServerAdmin account@email.net

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work.  See also the UseCanonicalName directive.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make~
# redirections work in a sensible way.
#
ServerName oper.or.kr:80


그리고 약 900번째 줄 부근에 다음 내용을 추가합니다.
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddType application/x-httpd-php .php .inc .html
AddType application/x-httpd-php-source .phps

#
# AddHandler allows you to map certain file extensions to "handlers":


 이제 시작 스크립트의 동작을 위해 /etc/rc.conf 파일에 다음 내용들을 추가합니다.
linux_enable="YES"

apache2_enable="YES"
mysql_enable="YES"
pureftpd_enable="YES"


 추가했으면 시작 스크립트를 이용하여 서버를 실행합니다. (물론 중지, 재시작할 때는 stop, restart 입니다.)
# /usr/local/etc/rc.d/pure-ftpd start
# /usr/local/etc/rc.d/mysql-server start
# /usr/local/etc/rc.d/apache2.sh start


 이것으로 pure-ftpd , apache2 , php4의 설정이 끝났습니다. 추가로 mysql 설정파일인 my.cnf를 설정하실 분은 /usr/local/share/mysql/my-*.cnf 파일들을 참고하시기 바랍니다.
2007/05/03 09:14 2007/05/03 09:14

MySQL 4.0 > MySQL 4.1 > MySQL 5.0 [on FreeBSD]

Category :: 운영체제/FreeBSD


  Oper.or.kr 서버에는 FreeBSD 6.1-Release 와 MySQL 4.0 을 사용하고 있었습니다. 그런데 가끔 이것저것 설치할 때마다 MySQL 4.1 이상을 요구하는 것들이 많아지고 해서 이 기회에 MySQL 4.1 로의 업데이트를 예정하고 있었습니다. 그런데 5.0 까지는 괜찮다고 하는 소리가 있어 MySQL 5.0 으로 업데이트 하기로 하고 날짜를 잡고 오늘 새벽 1시 30분 작업을 시작했습니다.
  혹시 이 문서를 참고하여 MySQL 을 업데이트 하고자 하시는 분은 먼저 끝까지 훑어보신 뒤 참고하시기 바랍니다.

  우선 아래 명령어를 이용하여 각각의 데이터 베이스를 백업 받습니다.
# mysqldump --add-drop-table --flush-logs -pROOT_PASSWORD --quote-names EACH_DB > EACH_DB.sql

  그리고 혹시 모르니 데이터 디렉터리를 째로 복사해서 백업하고, 서비스를 종료합니다.
# cp -R /var/db/mysql /var/db/mysql_backup
# /usr/local/etc/rc.d/mysql-server stop

  자 우선 MySQL 4.0 을 삭제하고 MySQL 4.1 을 설치합니다. 혹시 /etc/my.cnf 가 있다면 삭제해 줍니다.
# cd /usr/ports/databases/mysql40-client
# make deinstall
# cd /usr/ports/databases/mysql40-server
# make deinstall
# rm -f /etc/my.cnf
# cd /usr/ports/databases/mysql41-server
# make install WITH_CHARSET=euckr WITH_LINUXTHREADS=yes

  설치를 정상적으로 마쳤다면 아래 명령어로 MySQLd 를 safe 모드로 실행시키고, 무언가(?)를 fix 합니다. 그 다음 데몬을 사알짝 종료시킵니다.
# mysqld_safe --skip-grant-tables --user=mysql &
[1] 1234
# mysql_fix_privilege_tables --password=ROOT_PASSWORD
# kill -9 1234

  자 이제 MySQL 을 시작하고, 백업한 데이터를 각각의 디비에 복원합니다.
# /usr/local/etc/rc.d/mysql-server start
# mysql -pROOT_PASSWORD EACH_DB < EACH_DB.sql

  복원을 마쳤으면 MySQL 4.0 에서 MySQL 4.1 로의 업데이트가 끝났습니다. MySQL 4.1 까지 업데이트 하고자 한다면 이까지의 작업만 행하면 됩니다.

  이제 MySQL 5.0 으로의 업데이트를 시작합니다. MySQL 4.1 로의 업데이트와는 달리 가볍게 컴파일과 설치만 해주면 됩니다.
# /usr/local/etc/rc.d/mysql-server stop

# cd /usr/ports/databases/mysql41-server
# make deinstall
# cd /usr/ports/databases/mysql41-client
# make deinstall

# cd /usr/ports/databases/mysql50-server
# make install WITH_CHARSET=euckr WITH_LINUXTHREADS=yes

# /usr/local/etc/rc.d/mysql-server start

  처음 해보는 업데이트인지라 여러 시행착오도 많았고, 난관도 많았지만 우여곡절 끝에 마무리를 다 지었습니다. 사실 위에 기술한 것 외에 세부적으로 한 것들이 많지만, 시시각각으로 달라지는 것들이라 전부 적지는 않았습니다.
  그 중 한가지를 말하자면, 저는 인코딩을 euckr 로 사용하고 있습니다만, 태터툴즈 등을 사용하기 때문에 디비 안의 일부 테이블에는 utf8 자료가 꽤나 들어있습니다. 이렇게 하나의 디비에 euckr 과 utf8 데이터가 모두 들어있다면 백업을 테이블 단위로 하는 것이 현명한 방법입니다. 대신 백업을 하면서 어떤 테이블에 euckr 가 있고 어떤 테이블에 utf8 가 있는지 정도는 미리 알아야 합니다. 복원할 때 --default-character-set=utf8 과 같은 옵션을 주어야 된다는 점을 잊지 마시고요.
  전 백업을 잘못해서 MySQL 4.0 만 세번을 다시 깔았는데요. 역시 그 중 한가지를 들어보자면 mysqldump 옵션 중에 --quote-names 옵션을 빼먹어서 나중 복원할때 필드명이 예약어인 것들이 걸리면 에러를 수억개 발생시키곤 했습니다.

  처음부터 계획(?)을 확실하게 세워 저처럼 3시간 동안 고생하는 일이 없도록 합시다;

참고 문서 :
http://annyung.oops.org/?m=white&p=mysql41 (AnNyung Official Homepage)
http://krug.or.kr/forums/viewtopic.php?pid=121 (한국 레드햇 사용자 모임 포럼)

2007/03/09 05:10 2007/03/09 05:10

트레픽 제한

Category :: 서버들/Oper.or.kr


  몇일전 올린 포스팅에서 적용한 mod_cband 를 본격적으로 사용하기로 했습니다. 그에 따라 Oper.or.kr 에 계적이 있으신 분들은 virtualhost 를 사용하여야만 접근이 가능하며 (~계정 사용 불가) 하루 트레픽을 대충 어림잡아 지정해 보았습니다.
  트레픽 페이지는 http://도메인/traffic-status 를 이용하여 확인하실 수 있고 더 늘리거나 할 필요가 있을 시에는 이곳에 코멘트를 남기는 방식 등으로 전달하여 주시면 되겠습니다.
  트레픽 제한은 도메인 별로 하는 것이 아니라 사용자 별로 하는 것이니 만큼 /traffic-status 페이지에서 소유하고 계신 도메인의 각각의 사용량을 확인하실 수 있습니다.
2006/09/03 13:33 2006/09/03 13:33

mod_cband

Category :: 운영체제/FreeBSD


  서버로는 FreeBSD 만(동영상 스트리밍 제외)을 고집하고 있습니다. 이런 서버들은 특히 웹서버로 많이 이용되는데 대부분의 웹 서버들은 apache 1.3 을 사용하고 있습니다.
  저는 처음부터 apache 2.0 을 접한지라 1.3 에 대한 생소함 등등 때문에 사용해보지 않았습니다. 그러나 apache 1.3 에서 사용되는 것 중 부러운 것으로 mod_throttle 가 있었습니다. 가상 호스트 별로 트레픽 제한을 걸 수 있는 녀석입니다. +_+;
  최근 Oper.or.kr 서버에서 여차저차 아는 사람을 위주로 웹호스팅 처럼 계정을 주게 되었는데 제가 일일이 모니터링 할 수도 없고 로그만 보면서 트레픽 쓰는 서버를 찾는다는 것이 쉬운 것이 아닌 듯하여 특히나 더 간절했던 것 같습니다.
  그리하여 예전에 한번쯤 봤던 기억이 나서 검색엔진에서 찾아보니 mod_cband 라는 것이 있었습니다. 설명에 의하면 mod_cband 는 apache 2.x 에서만 사용이 가능하고, apache 1 에서의 mod_throttle 와 mod_bandwidth 와 비슷한 역할을 한다고 합니다. 사실 둘다 사용해보지 않아 저는 자세한 기능을 모르지만 사용해보신 여러분은 잘 아실 듯하니 믿고 넘어갑니다. (mod_throttle 는 트레픽 제한, mod_bandwidth 는 속도 제한의 역할을 한답니다.)

  FreeBSD 에 설치할 것이므로 우선 포트에 있는지 확인해 봤습니다.
<@HyperCube> ====> FreeBSD 포트  mod_cband-0.9.7.3  (www) <====
<@HyperCube> 분류: www  / 메인테이너: apache@FreeBSD.org
<@HyperCube> 등록: Wed Sep  7 19:53:52 2005
<@HyperCube> 설명: A per-virtualhost bandwidth limiter module for Apache 2

<@HyperCube> 검색된 포트가 없습니다. : mod_throttle

<@HyperCube> ====> FreeBSD 포트  mod_bandwidth-2.0.6  (www) <====
<@HyperCube> 분류: www  / 메인테이너: apache@FreeBSD.org
<@HyperCube> 등록: Thu Jul  3 15:13:45 2003
<@HyperCube> 설명: Bandwidth management module for the Apache webserver

  자 여기서 크게 상관은 없지만 apache 1 에서 사용되는 mod_throttle 은 FreeBSD ports 에 없다는 것을 보실 수 있는데 이건 아래의 사유로 포트 트리에서 삭제 되었기 때문이라고 합니다.
Per insistence of the author of this software, remove these ports from the Ports Collection. (제작자의 요청으로 인해, 이 포트를 포트 트리에서 삭제합니다.)

  우선 mod_cband 를 설치하도록 합니다.
# cd /usr/ports/www/mod_cband
# make install clean

  자 설치를 마쳤습니다. 의외로 간단하죠? 이제 httpd.conf 세팅을 해야됩니다. 저는 apache 2.0 을 사용하고 있으므로 /usr/local/etc/apache2/httpd.conf 에 위치하지만 apache22 등을 사용하실 경우에는 /usr/local/etc/apache22/httpd.conf 등을 참고하셔야 됩니다.
# cd /usr/local/etc/apache2
# vi httpd.conf

  우선 여기서 추가해줘야 될 것으로는 아래 세가지가 있습니다.
  1. CBand 가 적용된 모든 가상호스트들이 얼마나 트레픽을 사용하였는지 모니터링할 수 있는 관리자 페이지로, 아래에서는 /cband-status 로 연결했습니다.
  2. 현재 자신이 얼마만큼의 트레픽을 사용했는지 알 수 있는 확인 페이지로, 아래에서는 /cband-status-me 로 연결했습니다.
  3. VirtualHost 설정
  우선 추가해야될 1. 항목입니다.
<Location /cband-status>
   SetHandler cband-status
   Order deny,allow
   Deny from all
   Allow from Oper.oPer.opEr.opeR.or.kr
</Location>

  이건 2. 항목이고요.
<Location /cband-status-me>
   SetHandler cband-status-me
</Location>

  물론, 위의 두 항목에 대한 경로는 설정하시기 나름이고요. 이곳에 추가한다면 모두가 같은 설정을 적용받게 되니 <VirtualHost> 구문 안에 넣어서 사용하셔도 무방합니다. (예: <Location /traffic-me> 등)
  여기서 /cband-status 의 경우에는 Deny from all 로 기본적으로 모든 사용자의 접속을 차단해두고 Allow from 에서 지정한 IP 에서만의 접속을 허용하도록 되어있습니다. 하지만 우리 나라의 인터넷은 대부분 유동 IP 이고 계속 인터넷 접속이 되어있는 것도 아니니 IP 로 입력하는 것은 적절하지 않다고 봅니다. 그래서 저 같은 경우는 특정 VirtualHost 으로 접속할 때만 되도록 만들었습니다. (전 초보니 이부분은 다른 분들의 도움을 받아주세요.)

  이제 <VirtualHost> 구문을 아래와 비슷한 방식으로 설정합니다.
<VirtualHost *:80>
   ServerName oper.or.kr
   DocumentRoot /usr/local/www/data
   CBandLimit 300Mi
   CBandPeriod 1D
   CBandExceededURL http://oper.or.kr/cband/traffic_over.html
</VirtualHost>
  oper.or.kr 도메인에 대해 1일에 300Mbyte 의 트레픽을 허용하며 그 트레픽을 초과하면 http://oper.or.kr/cband/traffic_over.html 을 출력합니다.

  대부분 웹호스팅을 하거나 할 경우 한 사용자가 여러개의 도메인을 사용하는 경우가 많고, 그에 따라 여러개의 <VirtualHost> 를 가지게 되는 경우가 빈번합니다. 그럴 땐 어떻게 하느냐?
<CBandUser user>
   CBandUserLimit 300Mi
   CBandUserPeriod 1D
</CBandUser>
<VirtualHost *:80>
   ServerName oper.or.kr
   DocumentRoot /usr/local/www/data
   CBandUser user
</VirtualHost>
<VirtualHost *:80>
   ServerName ik.oper.or.kr
   DocumentRoot /usr/local/www/data
   CBandUser user
</VirtualHost>
  일종의 클래스 개념입니다. user 라는 클래서는 1일에 300Mbyte 의 전송량을 할당받고, oper.or.kr 과 ik.oper.or.kr 도메인이 user 클래스의 영향을 받는다는 구문입니다. CBandExceededURL 를 지정하지 않았기 때문에 트레픽을 초과하면 503 에러를 출력합니다.

  이 외에도 VirtualHost 별로 대역폭 설정 및 접속 IP 별로 대역폭 설정 등을 할 수 있지만, 그 부분은 다루지 않겠습니다. (왜냐? 역시 초보라..)
  설정을 다 하셨으면 apache 를 재시작해 주시고요. 이제 http://Domain/cband-status 와 http://Domain/cband-status-me 로 접속해 확인합니다. 물론 위에서 설정한 Domain 으로 접속해야겠죠?

  위 정보는 이곳에서 얻어왔습니다. 아래의 설정 값 역시 이곳에서.. ^^; (귀찮음?) 보다 자세한 것은 이곳을 한번 살펴보시고 해결이 안되신다면 코멘트로 질문 달아주시면 아는 것을 답변해 드리겠습니다.
1) 단위
  * 전송속도 단위
     o kbps, Mbps, Gbps - bits per second:1024, 1024*1024 , 1024*1024*1024 bps
     o kb/s, Mb/s, Gb/s - bytes persecond:  1024, 1024*1024, 1024*1024*1024 b/s
     o 기본 : kbps

  * 트래픽 쿼터 단위
     o K, M, G - bytes: 1000, 1000*1000,1000*1000*1000 bytes
     o Ki, Mi, Gi - bytes: 1024, 1024*1024,1024*1024*1024 bytes
     o 기본 : K

  * 시간(기간) 단위
     o S, M, H, D, W - 초, 분, 시간, 일, 주
     o 기본 : S

2) 지시자들
  (1) 이름 : CBandDefaultExceededURL
     설명 : 제한을 초과했을때보여줄 URL  (지정하지 않으면, 503 에러 페이지)
     문맥 : Serverconfig
      문법 :CBandDefaultExceededURL URL

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

  (3) 이름 : CBandScoreFlushPeriod
     설명 : scoreboard 파일에기록할 요청수, mod_cband 의 성능에 영향을 준다.
     기본값 : 1
     문맥 : Server config
     문법 :CBandScoreFlushPeriod 요청수
     예제 :CBandScoreFlushPeriod 100  ( 매 100번의 요청에 한번씩 scoreboard 파일에 기록)

  (4) 이름 : CBandSpeed
     설명 : 가상호스트 도메인의 최대 속도,요청수, 접속수  설정
     문맥 :<Virtualhost>
     문법 : CBandSpeed kbpsrps max_conn
             kbps - 초당 최대 전송속도
             rps - 초당 최대 요청수
             max_conn - 최대 동시 접속수
     예제 : CBandSpeed 102410 30
             최대 1024kbps전송속도로 제한, 초당 10개의 요청 처리, 동시 접속을 30개로 제한.

  (5) 이름 : CBandRemoteSpeed
     설명 : 접속자(IP)의 최대속도,요청수, 접속수 제한 (CBandSpeed와 비슷하지만, 접속자당 설정)
     문맥 :<Virtualhost>
     문법 : CBandRemoteSpeedkbps rps max_conn
             kbps - 초당 최대 전송속도
             rps - 초당최대 요청수
             max_conn - 최대 동시 접속수
     예제 : CBandRemoteSpeed20kb/s 3 3
             접속자(ip)에대해 최대 20kb/s , 초당 3개의 요청, 동시 접속 3개로 제한.

  (6) 이름 : CBandClassRemoteSpeed
     설명 : 정의한 class(ip 범위)에대해 최대속도, 요청수, 접속수 제한
     문맥 :<Virtualhost>
     문법 :CBandClassRemoteSpeed class_name kbps rps
             class_name - 이미 정의한 클래스 이름 (IP범위)
             kbps - 초당 최대 전송속도
             rps - 초당 최대 요청수
             max_conn - 최대 동시 접속수
      예제 : <CBandClassgooglebot_class>
               CBandClassDst 66.249.64/24
               CBandClassDst 66.249.65/24
               CBandClassDst 66.249.79/24
             </CBandClass>
                   CBandClassRemoteSpeedgooglebot_class 20kb/s 2 3
                   위에서 정의한클래스(googlebot_class)의 요청에는 20kb/s 의 전송속도, 초당 3개의 요청, 동시 접속 3개로 제한.

  (7) 이름 : CBandRandomPulse
     설명 : 속도 제한을 위해서 임의의파형을 생성한 다음 처리하는 mod_cband의 처리 방법이다.
              부하가 많을때는 자동 Off된다.
     문맥 : Global
     문법 : CBandRandomPulseOn/Off

  (8) 이름 : CBandLimit
     설명 : 제한할 전송량을 설정한다.(기간은 CBandPeriod 에서 설정)
     문맥 :<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)로 제한한다.

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

  (10) 이름 : CBandExceededURL
     설명 : 제한을 초과했을시 보여줄URL, 지정하지 않으면 503 에러 발생 (가상호스트에서)
     문맥 :<Virtualhost>
     문법 : CBandExceededURLURL

  (11) 이름 : CBandExceededSpeed
     설명 : 전송양을 초과했을시 , 전송속도제한 설정.
     문맥 :<Virtualhost>
     문법 :CBandExceededSpeed kbps rps max_conn
             kbps - 초당 최대 전송속도
             rps - 초당 최대 요청수
             max_conn - 최대 동시 접속수

  (12) 이름 : CBandScoreboard
     설명 : 가상호스트의 scoreboard파일 지정. (성능향상을 위해 필요)
     문맥 :<Virtualhost>
     문법 : CBandScoreboardpath
             (path는 아파치(www)권한으로 쓰기가능해야 함)

  (13) 이름 : CBandPeriod
     설명 : 용량제한기간(이 기간이 지나면,측정되었던 용량은 지워진다.)
     문맥 :<Virtualhost>
     문법 : CBandPeriod period
             period - 사용단위: S (초), M (분), H (시간), D (일), W (주)
     예제 : CBandPeriod1W  (1주일)
             CBandPeriod 14D  (14일)
             CBandPeriod 60M  (60분)

  (14) 이름 : CBandPeriodSlice
     설명 : 기간이 길때는 나눌 기간을명시한다.
     기본값 : slice_len = limit
     문맥 :<Virtualhost>
     문법 : CBandPeriodSliceslice_length
     예제 : CBandLimit 100G
             CBandPeriod 4W
             CBandPeriodSlice 1W
              4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G
              1주에 25G, 2주째 50G 이렇게 나눠 처리 된다.

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

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

  (17) 이름 : CBandUserLimit
     설명 : cband 가상 사용자의 저송용량 제한.
     문맥 : <CBandUser>
     문법 : CBandUserLimitlimit
             limit - 사용용량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi), Gi (gibi)
     예제 : CBandUserLimit 10M
             CBandUserLimit 10Mi

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

  (19) 이름 : CBandUserExceededURL
     설명 : cband 가상 사용자의,제한을 초과했을시 보여줄 URL,
              지정하지 않으면 503 에러 발생 ( 가상호스트에서 )
     문맥 : <CBandUser>
     문법 :CBandUserExceededURL URL

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

  (21) 이름 : CBandUserScoreboard
     설명 : cband 가상 사용자의,scoreboard 파일 지정.
     문맥 : <CBandUser>
     문법 :CBandUserScoreboard path
             (path는 아파치(www)권한으로 쓰기가능해야 함)

  (22) 이름 : CBandUserPeriod
     설명 : cband 가상 사용자의,용량제한기간(이 기간이 지나면, 측정되었던 용량은 지워진다.)
     문맥 : <CBandUser>
     문법 : CBandUserPeriodperiod
             period - 사용단위: S (초), M (분), H (시간), D (일), W (주)
     예제 : CBandUserPeriod 1W
             CBandUserPeriod 14D
             CBandUserPeriod 60M

  (23) 이름 : CBandUserPeriodSlice
     설명 : cband 가상 사용자의,기간을 나눌 기간 명시
     기본값 : slice_len = limit
     문맥 : <CBandUser>
     문법 :CBandUserPeriodSlice slice_length
     예제 : CBandUserLimit100G
             CBandUserPeriod 4W
             CBandUserPeriodSlice 1W
              4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G
              1주에 25G, 2주째 50G 이렇게 나눠 처리 된다.


## 참고문서
http://cband.linux.pl
http://www.howtoforge.com/mod_cband_apache2_bandwidth_quota_throttling
http://www.superuser.co.kr/home/lecture/index.php?leccode=10588
2006/08/31 18:29 2006/08/31 18:29

FreeBSD 를 데스크탑으로 쓰기

Category :: 운영체제/FreeBSD


  지금까지 FreeBSD 는 항상 서버에서 서버 OS 로만 사용해 왔습니다. 구지 서버로만 사용한 이유를 찾자면 1년 6개월 전 프비를 처음 데스크탑에 깔아볼 때 세팅 오류로 gnome2 까지 띄웠음에도 불구하고 마우스 스크롤이 안 되는 등의 문제가 있었기 때문일 겁니다. (역시 무엇보다 게임 안 되는 것과 AX 덕분에 인터넷 뱅킹 안 되는 것이 더 큰 타격이 아닐까 합니다만.. 별로 안 하지만)
  IIT-IDC 에 서버를 입주시키고 남는 서버가 생겨 윈도우 2000 이나 2003 을 설치해서 TS 서비스로 연결하여 사용해볼까 FreeBSD 를 설치하여 데스크탑으로 사용해볼까를 몇시간 고민하고, 집에서 토요일 0시경에 FreeBSD 6.1 Release 를 설치하기 위해 시디를 넣고 설치를 시작 했습니다. 그러나 마음 먹고 시작한지 얼마 지났다고, 부팅시 커널을 읽을 수 없다는 황당한 오류에 부딪혔습니다. 그냥 윈도나 깔아서 사용할까 했으나 큰 맘먹고 처음으로 세상만들기를 할 요랑으로 6.0 을 설치하여 6.1 로 올린 다음에 거기다 gnome2 를 설치하자는 결론을 내렸습니다.
  1. # pkg_add -r cvsup-without-gui
  2. # rehash
  3. # cp /usr/share/examples/cvsup/standard-supfile /root/
  4. # vi /root/standard-supfile
  5. *default release=cvs tag=RELENG_6_0 에서 6_1 로 수정
  6. # cvsup -g -L 2 -h oper.or.kr /root/standard-supfile
  7. # cd /usr/src
  8. # make buildworld
  9. # make buildkernel
  10. # make installkernel
  11. # reboot
  12. # mergemaster -p
  13. # make installworld
  14. # mergemaster
  15. # reboot
  16. # pkg_add -r gnome2
  17. # xorgcfg
  18. # pkg_add -r ko-scim-hangul
  19. $ vi ~/.xinit 에 대충 추가
  20. $ startx
  위와 같은 과정을 거쳐 gnome2 를 띄우는데 성공했습니다. ㅜ_ㅠ (감격)
  그리고 Firefox 를 설치하였으나 메뉴가 윈도에서의 4배로 보이는 충격(sc1, sc2)을 뒤로하고 여러 삽질 끝에 폰트 문제라는 결론을 도출, 수정을 하였고.. xmms 를 설치하였으나 약간의 난관에 부딪혀서 BMP 로 대체 했고요.
  • pkg_add -r ko-aleefonts-ttf : 폰트
  • pkg_add -r ko-firefox-ko : Firefox 한글화
  • pkg_add -r xchat2 : IRC 클라이언트 (사용 안 하시는 분은 필요 없음돠);
  • pkg_add -r beep-media-player : 음악 재생용 (like Winamp)
  저렇게만 해둬도 데스크탑 쓰는데 큰 지장은 없습니다만.. 동영상을 보려면 동영상 재생기가 있어야 되기에 사람들이 많이 쓴다는 mplayer 를 찾아 나섰습니다. 근데 요놈이 pkg_add 로 설치가 불가능한 것이였습니다. 지금까지 포트 트리로 설치를 해오지 않았기 때문에 cvsup 으로 포트 트리를 받아 설치를 하였는데 아직 만족스럽지 못한 면이 많이 남아있습니다.
  그동안 윈도우를 데스크탑으로 써오면서 대부분의 자료가 윈도우에 있는데 그 자료들과 현재 새로 사용하는 FreeBSD 의 자료들의 인코딩이 다른 것도 한 몫을 하였는데 안에 내용은 둘째치고 파일명이 깨지는 것입니다. (음악파일 등) 역시 구글님의 도움으로 convmv 를 설치하여 해결 봤습니다. -ㅇ-v
  지금은 윈도우에서 자료를 가져오려면 윈도우에 임시로 열어둔 알 FTP 서버(;)로 가져오고 있었는데요. 삼바를 구축해서 네트웍으로 가져오는 것이 여러모로 편할 듯 해서 슬슬 구축할까 합니다. 오픈 오피스도 깔아봐야 될 듯 하고요.
  음 게임을 그닥 하지 않는다면 FreeBSD 를 데스크탑으로 쓰는 것도 괜찮을 듯 합니다. *^^*
2006/06/11 21:44 2006/06/11 21:44

 이전  1   다음