FreeBSD (Apache)에서 확장 모듈 설정 및 "로그"획득

이번에는 확장 모듈을 사용하여 FreeBSD에 기능을 추가해 봅시다.
Apache에는 초기 상태에서 많은 모듈이 설치되어 있습니다.
  • 사용자 인증
  • 액세스 제한
  • HTTPS 프로토콜 구현
  • Proxy 기능
  • 로그

  • 등등・・・
      

    현재 상태 확인



    먼저 현재 상태에서 얼마나 많은 모듈이 이미 내장되어 있는지 확인해 봅시다.
    httpd 명령에 "-M"옵션을 사용하면 내장된 모듈을 나열할 수 있습니다. 모듈 이름 옆에 있는 (static/shared)는 모듈 유형을 나타내며,

    "static"은 정적 링크를 사용하며 Apache를 설치할 때 내장되어 있습니다. "shared"는 동적 링크를 사용하며 필요에 따라 통합할 수 있는 모듈입니다.

    임베디드 모듈 확인
    $ su    まずはスーパーユーザになって下さい
    # httpd -M
    Loaded Modules:
     core_module (static)
     so_module (static)
     http_module (static)
     ...
    
    
    
     logio_module (shared)
     socache_shmcb_module (shared)
    

    정적인 것은 분리·내장시에 Apache를 재설치할 필요가 있습니다.
    반면에 동적 파일은 구성 파일에서 쉽게 활성화/비활성화할 수 있습니다.

    mod_status 사용



    이제 모듈을 추가해 보겠습니다.

    mod_status 설치
    まずhttpd.confを編集します
    # vim /usr/local/etc/apache24/httpd.conf
    httpd.conf
    #Server configuration
    ServerRoot "/usr/local"
    Listen 80
    
    #LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so
    LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
    ...ずっと続きます変更点は以下です
    (「#」はコメントアウト
    
    LoadModule status_module libexec/apache24/mod_status.so
    コメントアウトを外す
    status_moduleとういモジュールをロードしてくれます
    
    ExtendedStatus On
    追加情報を表示
    
    <Location /server-status>
            SetHandler server-status
            Order Deny,Allow
            Deny from all
            Allow from 192.168.56.1   192.168.56.1からのみ見られるように設定
    </Location>
    これらは追記して下さい
    

    구성이 완료되면 apachectl을 사용하여 Apache를 다시 시작하고 액세스 권한이 부여 된 클라이언트에서 "http://서버 이름/server-status"에 연결합니다.
      
    아래와 같은 페이지가 표시되면 성공입니다.


    또 URL에 「?auto」에 부가한 「http://호스트명/server-status?auto」를 지정하는 것으로 캐릭터 라인으로서 서버 스테이터스를 취득할 수 있습니다.


    로그 설정



    그럼 드디어 로그에 대해 갑니다. 「커스텀 로그」를 이용하는 것으로, URL 참조원이나 클라이언트 정보등을 로그 출력에 더할 수가 있습니다.  
    그럼 앞서와 같이 httpd.conf를 편집해 갑니다.

    로그 설정
    # vim /usr/local/etc/apache24/httpd.conf
    httpd.conf
    #Server configuration
    ServerRoot "/usr/local"
    Listen 80
    
    #LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so
    LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
    ...ずっと続きます変更点は以下です
    
    
    
    #以下の2行のコメントアウトを外して下さい
    LoadModule log_config_module libexec/apache24/mod_log_config.so  ログを拡張できる
    LoadModule logio_module libexec/apache24/mod_logio.so
    
    #エラーログの設定
    ErrorLog "/var/log/httpd-error.log"  エラーログの出力先の設定
    LogLevel warn  ログレベルの設定
    
    #カスタムログの設定
    <IfModule log_config_module>
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined  ログフォーマットcombinedの定義
        LogFormat "%h %l %u %t \"%r\" %>s %b" common    ログフォーマットcommonの定義
    
        <IfModule logio_module>
          LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio ログフォーマットcombinedioの定義
        </IfModule>
    
        CustomLog "/var/log/httpd-access.log" common /var/log/httpd-access.logにcommonのフォーマットに従って記述する
    </IfModule>
    

    이제 액세스 로그를 살펴 보겠습니다.


    뭐 밖과 연결되어 있지 않기 때문에 액세스는 자신뿐입니다. 웃음
    이상으로 이번은 종료입니다.

    좋은 웹페이지 즐겨찾기