APACHE 웹 서버를 운영하면 ,로그를 반드시 사용하게 되는 경우가 많은데, 로그 파일의 크기가 커질수록 시스템 부하는 점점 감당할수 없게 되고, 로그 분석 또한 원활하지 않는 경우가 많이 발생하게 된다. 

이러한 문제를 해결할 수 있는 가장 간단한 방법은 웹서버의 로그 파일을 매일 매일 따로 관리하게 하는 것인데, cronolog라는 프로그램을 사용하면 굉장히 쉽게 이 작업을 할 수 있다.


cronolog의 설치 및 사용방법.

1. cronolog 다운받기
http://cronolog.org/download/index.html
위 사이트에 접속하여, 적절한 버전을 다운로드 한다.

2. compile  및 설치
[root @ linux]# tar xzvf cronolog-1.6.1.tar.gz 
[root @ linux]# cd cronolog-1.6.1 
[root @ linux]# ./configure --prefix=/usr/local/cronolog 
(기타 옵션을 알아서 사용하시면 됨) 
[root @ linux]# make;make install

3. httpd.conf 설정.
[root @ linux]# vi httpd.conf 
........... 
TransferLog "|/CronLog/sbin/cronolog /home/apache/logs/%Y/%m/%
d/access.log" 
ErrorLog "|/CronLog/sbin/cronolog /home/apache/logs/%Y/%m/%d/errors.log" 
........... 

vi 저장 및 종료 (:wq!)

4. apache restart


블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

Name Server는 이런  DNS를 운영하는 서버입니다.
일반적으로 가장 널리 쓰이는 프로그램은 BIND(Berkely Internet Name Domain)이라는 프로그램입니다.
사용하기도 쉽고, 설정 또한 편리한데다가 많은 사람들이 사용하다 보니까, 각종 버그 리포트 및 패치가 빨리 이루워 지고 사용에 대한 도움도 받기 쉬워서 많이 이용되고 있습니다.

BIND의 설치

1. 다운로드
https://www.isc.org/downloadables/11  에서 적절한 버전을 다운로드 한다.
2009년 3월 26일 현재에는 BIND 9.6.0-P1 버전이 product release 버전입니다. 
(예:bind-9.6.0-P1.tar.gz)

2.적당한 디렉토리에 압축을 해제한다.
  [root @linux]#/var/tmp
  [root @linux]#tar xvfz bind-9.6.0-P1.tar.gz

3.make 유틸리티를 이용해서 컴파일 한다.
  [root @linux]#make stdlinks --> 최상위 레벨 디렉토리에서 모든 것을 컴파일 해둔다.
  [root @linux]#make clean    --> 새로 컴파일 할수 있도록 함.
  [root @linux]#make depend --> 의존성 검사 
  [root @linux]#make all        --> 모두 파일을 컴파일
  [root @linux]#make install   --> 옵션을 사용해서 설치되는 위치를 지정할 수있다.
                                                (예:--DESTDIR=/usr/local/bind)
4.환경 파일을 설정한다.
  (예:named.conf , 특별한 옵션을 주지 않고 설치 했다면 /etc/아래에 위치해야 된다.)

5. 환경 설정
  [root @linux]#vi /etc/named.conf
  #named.conf --> BIND운영환경 설정파일 
  options {  --->각종옵션들을 적어 줍니다.
         directory "/var/named"; --->named 가 사용할 임시 디렉토리 주소
  }; 

  #(아래의 파일은 /var/named아래에 있어야 됩니다.) 위에서 지정한 디렉토리 아래
  zone "." in { --> 모든 도메인 네임이 참고 할 데이터 영역 지정
        type hint; 
        file "db.named.cache";  -->ISC에서 제공하는 데이터 파일입니다.
  }
  zone "domain.net" in { -->자신의 도메인이 참고 할 데이터 영역 지정.
        type master; 
        file "db.domain.net"; -->자신이 설정 해주어야 됩니다.
  }; 

  zone "123.21.204.in-addr.arpa" in  { 
        -->아이피를 도메인 네임으로 변경해줌(서버 아이피가 204.21.123.XX일때)
        type master; 
        file "named.local"; 
  }
위의 설정 파일은 단지 예제에 불과하므로, 자신의 시스템에 맞도록 설정해야 합니다.

설정파일을 만드는 법은 BIND문서를 참고 하시거나 인터넷에서 검색해보시는 것도 좋은 방법이 될 것입니다. 위의 설정 파일 부분에서 도메인 영역을 자신의 도메인으로 바꾸고, 아이피 부분을 자신의 서버 아이피로 바꾸어 주고 실행 시켜면 네임서버가 실행 됩니다.

물론 각 지정 파일들은 지정 디렉토리 아래에 존재해야 됩니다.
ISC에서 제공하는 파일은 FTP로 받아 올수 있습니다.

자신의 도메인 서버가 사용할 영역 파일은 다음과 같을 수 있습니다
  [root @linux]#vi /var/named/db.domain.net
  $TTL 3h
  @                IN        SOA        ns.domain.net.        root.domain.net. (
                        1 ; serial
                        3h ; refresh
                        1h ; retry
                        1w ; expire
                        1h ; default_ttl
                        )
  ;
  ;
                IN        NS        ns.domain.net.
  ;
  ;
  localhost           IN        A        127.0.0.1
  domain.net.        IN        A        54.15.15.94
  www                IN        A        54.15.15.95
  ns                    IN        A        54.15.15.94

  [root @linux]#vi /var/named/db.54.15.15
  $TTL 3h
  @                IN        SOA        ns.domain.net.        root.domain.net. ( 
                -->네임서버의 도메인네임.(ns라는 호스트로 지정했습니다.)
                -->root.domain.net. root라는 관리자의 메일주소를 뜻합니다.
                -->항상 마침표 . 를 찍어 주셔야 됩니다.
                1 ; serial
                3h ; refresh
                1h ; retry
                1w ; expire
                1h ; default_ttl
                )        
  ; 
  ;
                IN        NS        ns.domain.net.
  ;
  ;
  94        IN        PTR        ns.domain.net.
  95        IN        PTR        www.domain.net. -->해당아이피에 도메인 네임 할당.
                                        -->54.15.15.94는 네임서버의 아이피로 지정하고,
                                        -->54.15.15.95는 www 호스트의 아이피로 지정함.

6. 네임서버 실행
named라는 실행파일이 자신이 설치한 디렉토리의 bin디렉토리 아래에 존재 합니다.
(예:/usr/local/bind8/bin/named &)
블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

FTP 서버는 파일 전송 프로토콜을 서비스 해주는 서버 어플리케이션 입니다.

ProFTPd 설치 및 운영법

1. 다운로드 
http://www.proftpd.org 에 접속하시면, 최신 버전을 다운로드 하실 수 있습니다.
2009년 3월 26일 현재, 1.3.2 버전이 최신 버전입니다.(예:proftpd-1.3.2.tar.gz)

2.압축 해제
  (예:/var/tmp/proftpd-1.3.2)
  [root @linux]#pwd
  /var/tmp
  [root @linux]#ls
  proftpd-1.3.2.tar.gz
  [root @linux]#tar xvfz proftpd-1.3.2.tar.gz
  [root @linux]#cd proftpd-1.3.2

3.컴파일 및 설치
  [root @linux]#cd /var/tmp/proftpd-1.3.2
  [root @linux]#./configure --prefix=/usr/local/proftpd  
  [root @linux]#make
  [root @linux]#make install

4.데몬 환경 파일 설정
  (예;/usr/local/proftpd/etc/proftpd.conf)
  [root @linux]#vi /usr/local/proftpd/etc/proftpd.conf
  user nobody  ---> 사용자와 그룹을 nobody로 바꿔 줍니다.
  group nobody

5.데몬 실행
  [root @linux]#/usr/local/proftpd/bin/proftpd &
  
6. 재부팅시마다 시작하게 만들기
 /etc/rc.d/rc.local파일에 다음의 명령을 추가 합니다.(Gentoo Linux의 경우입니다.)
  #ProFTPD start
  /usr/local/proftpd/bin/proftpd &

 
리눅스 서버를 공개 자료실로 이용하고 싶으실때는 Anonymous접속을 allow해주면 됩니다.

블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

netstat을 사용해서, 80번 포트(http 기본 포트)에 접속한 connection 수를 알아내는 법은 다음과 같습니다.

[root @ linux]# netstat -n | grep .80 | grep EST | wc -l

같은 방법으로 , 특정 포트번호만 설정해두면, 스크립트를 만들어서 주기적으로 접속자 수가 몇명이나 되는지 확인할 수 있습니다.

블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,

블로그 정리중 글 옮김92009년 3월 26일 글)

apache 웹서버에서는 mod_rewrite 와 Virtual User Hosts 를 사용하여, 각 user들에게 도메인을 제공해줄 수 있습니다.

예를 들면, http://www.server.com/~userid로 접속을 하는 것을  http://userid.server.com 으로 서비스할 수 있습니다.

1. 네임서버 설정
해당하는 zone 파일의 호스트 이름에 "*" 문자(모든 호스트)를 사용
  * IN A 123.123.123.123

2. mod_rewrite 모듈 빌드 및 탑재
mod_rewrite.so 가 존재할 경우(apache의 모듈들이 설치된 디렉토리)에는 바로 httpd.conf를 수정하면 됩니다.

위의 모듈이 없을 경우, apache를 다시 빌드해야 합니다.
[root @ linux]# env CFLAGS="-DEAPI"
[root @ linux]#     ./configure
         --prefix=/etc/httpd
         --enable-module=so
         --enable-shared=max
         --enable-module=rewrite
         --enable-shared=rewrite

[root @ linux]# make
[root @ linux]# make install

3. httpd.conf 에 rewrite 관련 설정
  
LoadModule rewrite_module libexec/mod_rewrite.so
AddModule mod_rewrite.c
    ......
 
<VirtualHost *>
        ServerAdmin admin_at_domain.com
        DocumentRoot /home/httpd/html
        ServerName www.server.com
        ServerAlias domain.com *.server.com
        ErrorLog logs/server.com-error_log
        CustomLog logs/server.com-access_log common


        ### Virtual User Hosts


        RewriteEngine on


        RewriteCond %{HTTP_HOST} !^www.server.com$
        RewriteCond %{HTTP_HOST} !^server.com$
        RewriteCond %{HTTP_HOST} ^[^.]+.server.com$
        RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
        RewriteRule ^([^.]+).server.com(.*) /home/$1/html$2
</VirtualHost>


    



블로그 이미지

커뉴

이 세상에서 꿈 이상으로 확실한 것을, 인간은 가지고 있는 것일까?

,