apache 2.2->2.4 설정 변경 사항 참고

https://findstar.pe.kr/2016/11/08/apache_2_4_custom_error_log_access_constrol/

apache 2.4버전을 사용하면서 이전버전과는 달라진 두가지 부분에 대해서 알게 되었다. 하나는 ErrorLog 에서 CustomLog format이 가능해졌다는 점과, AccessControl의 문법이 달라졌다는 것이다. Custom Error Log는 잘 쓰면 에러를 추적할 때 정말 유용하다.

최근 웹서버를 CentOS 7 기반으로 재설치하면서 apache 2.4 버전을 사용해 보았다. 2.2 버전과는 다른 부분중에 2가지 부분을 살펴보았는데 다음과 같다.

ErrorLog 에서 Custom Log Format 이 가능해졌다.

apache 2.4 에서는 Error Log 에 대해서 Format 설정이 가능하다. 사용 키워드는 ErrorLogFormat 이고 매뉴얼을 참고하자. link

이전까지는 access log 에 대해서만 LogFormat 이 가능했는데 2.4부터 error log 에 대해서도 formating 이 설정 가능해졌다. 대부분의 웹서비스에서 error log 는 서비스의 다양한 오류를 추적하고, 상태를 확인하데는 주요하게 사용되기 때문에 이를 활용하면 디버깅이 훨씬 수월해진다.

사용문법은 다음과 같고, 생각보다 어렵지 않다.

ErrorLogFormat “[%{u}t] [%m:%l] [host:%{Host}i , ip:%a] %7F: %E: %M ,\ referer\ %{Referer}i ,\ User-Agent\ %{User-Agent}i”

여기서 사용한 Format 키워드들은 다음과 같다.

Format 키워드설명
%{u}t시간을 기록한다 이때 micro-second 까지 포함한다. micro-second 가 필요없다면 %t 만 쓰면 된다.
%m에러 로그를 기록하게된 apache 모듈의 이름을 기록한다. 기본적으로는 core가 기록되고, 에러를 기록하는 모듈명이(ex, authz_core )기록된다.
%l로그 레벨이 기록된다.
%{Host}i서버가 2개 이상의 virtual host 를 가지는 경우 이를 구분하기 위해서 추가했다. 정확하게는 ${name}i 의 형태인데 여기서 *name*은 Request header 의 name 이다.
%aclient 의 IP 를 기록한다.
%F문제가 발생한 소스 파일의 이름과 line number 를 기록한다.
%E에러 status code 가 기록된다. 대부분 구글링하게 되는 핵심 키워드.
%M실제 로그 메세지 내용이다.
%{Referer}iRequest 의 Referer 를 기록하도록 했다.
%{User-Agent}iUser-Agent 를 기록하도록 했다.

%{name}i 의 경우에는 apache conf에서 SetEnvIf 등으로 설정한 파라미터도 기록할 수 있기 때문에 유용하게 사용할 수 있다.

기타 보다 자세한 내용은 매뉴얼을 참고하면 된다.

Access Control 문법의 변경

기존의 apache 2.2 와 비교하여 access control 문법이 변경되었다. 물론 이전 2.2 버전까지 사용되던 문법을 완전히 사용하지 못하는 것은 아니고 mod_access_compat apache 모듈이 설치되어 있다면 사용가능하다. 다만 이경우 2.2 문법과 2.4 문법을 혼용하면, 원하는 대로 동작하지 않을 수 있기 때문에 이왕이면 한쪽으로 통일하는 것이 좋아보인다. 나의 경우에는 2.4 문법으로 통일했다.

// 2.2 의 문법
<Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
</Location>

<FilesMatch "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy All
</FilesMatch>
// 2.4의 문법
<Location /server-status>
        SetHandler server-status
        Require all denied
        Require ip 127.0.0.1
</Location>

<FilesMatch "^\.ht">
        Require all denied
        Satisfy All
</FilesMatch>

다음은 조금 더 복잡한 access control 이다.

// 2.2 문법

#bingbot 을 막아보았다.
BrowserMatch "bingbot" bingbot

#192.168.10.10 IP를 막아보았다.
SetEnvIfNoCase Remote_Addr 192.168.10.10 ddosIP

<Location />
        Order allow,deny
        Allow from all
        Deny from env=bingbot
        Deny from env=ddosIP
</Location>
// 2.4 문법

#bingbot 을 막아보았다.
BrowserMatch "bingbot" bingbot

#192.168.10.10 IP를 막아보았다.
SetEnvIfNoCase Remote_Addr 192.168.10.10 ddosIP

<Location />
        <RequireAny>
            <RequireAll>
                Require all granted
                Require not env bingbot
                Require not env ddosIP
            </RequireAll>
        </RequireAny>
</Location>

지금 당장은 apache 2.2 에서 사용하던 access control 문법을 바꾸지 않아도 되지만, 미래에는 없어질 것이기 때문에 시간이 난다면 고쳐주는 게 좋은것 같다.

보다 자세한 문법은 매뉴얼을 참고하자.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

42 Responses

  1. meditation music 말해보세요:

    meditation music

  2. UFADEAL 말해보세요:

    UFADEAL เว็บของพวกเราแจกจริงไม่ต้องฝาก ไม่ต้องแชร์ รับกันได้แบบฟรีๆ PG SLOT เพราะว่ามันเป็นสิ่งที่ช่วยทำให้คุณทำเงินได้ แบบเต็มๆเล่นได้ทุกเกมถอนได้จริงต้องพีจี สล็อต เว็บนี้เท่านั้น

  3. URL Shortener 말해보세요:

    Hey, I’m Jack. Your blog is a game-changer! The content is insightful, well-researched, and always relevant. Great job!

  1. 2022년 6월 20일

    1defends

  2. 2023년 1월 25일

    2viewing

  3. 2023년 6월 6일

    … [Trackback]

    […] Read More Information here on that Topic: nblog.syszone.co.kr/archives/9636 […]

  4. 2023년 7월 1일

    … [Trackback]

    […] Read More here to that Topic: nblog.syszone.co.kr/archives/9636 […]

  5. 2023년 7월 7일

    … [Trackback]

    […] Information to that Topic: nblog.syszone.co.kr/archives/9636 […]

  6. 2023년 7월 10일

    … [Trackback]

    […] Read More on to that Topic: nblog.syszone.co.kr/archives/9636 […]

  7. 2023년 7월 17일

    … [Trackback]

    […] There you will find 61504 more Info on that Topic: nblog.syszone.co.kr/archives/9636 […]

  8. 2023년 8월 1일

    … [Trackback]

    […] Information on that Topic: nblog.syszone.co.kr/archives/9636 […]

  9. 2023년 8월 3일

    … [Trackback]

    […] Read More Info here on that Topic: nblog.syszone.co.kr/archives/9636 […]

  10. 2023년 8월 8일

    … [Trackback]

    […] There you will find 83969 more Info to that Topic: nblog.syszone.co.kr/archives/9636 […]

  11. 2023년 8월 19일

    … [Trackback]

    […] Info on that Topic: nblog.syszone.co.kr/archives/9636 […]

  12. 2023년 9월 13일

    … [Trackback]

    […] Information on that Topic: nblog.syszone.co.kr/archives/9636 […]

  13. 2023년 10월 13일

    … [Trackback]

    […] Here you will find 5060 additional Information to that Topic: nblog.syszone.co.kr/archives/9636 […]

  14. 2023년 10월 23일

    … [Trackback]

    […] Find More on that Topic: nblog.syszone.co.kr/archives/9636 […]

  15. 2023년 10월 31일

    … [Trackback]

    […] Read More here on that Topic: nblog.syszone.co.kr/archives/9636 […]

  16. 2023년 11월 7일

    … [Trackback]

    […] Here you will find 21193 additional Information to that Topic: nblog.syszone.co.kr/archives/9636 […]

  17. 2023년 11월 7일

    … [Trackback]

    […] There you will find 44338 additional Information on that Topic: nblog.syszone.co.kr/archives/9636 […]

  18. 2023년 11월 9일

    … [Trackback]

    […] There you will find 56226 additional Info on that Topic: nblog.syszone.co.kr/archives/9636 […]

  19. 2023년 11월 16일

    … [Trackback]

    […] Info on that Topic: nblog.syszone.co.kr/archives/9636 […]

  20. 2023년 11월 22일

    … [Trackback]

    […] Find More Info here to that Topic: nblog.syszone.co.kr/archives/9636 […]

  21. 2023년 11월 23일

    … [Trackback]

    […] There you can find 70847 more Info to that Topic: nblog.syszone.co.kr/archives/9636 […]

  22. 2023년 11월 23일

    … [Trackback]

    […] Information to that Topic: nblog.syszone.co.kr/archives/9636 […]

  23. 2023년 11월 24일

    … [Trackback]

    […] Info on that Topic: nblog.syszone.co.kr/archives/9636 […]

  24. 2023년 12월 8일

    … [Trackback]

    […] Info to that Topic: nblog.syszone.co.kr/archives/9636 […]

  25. 2024년 1월 19일

    … [Trackback]

    […] Information on that Topic: nblog.syszone.co.kr/archives/9636 […]

  26. 2024년 2월 17일

    … [Trackback]

    […] Here you can find 22054 additional Info on that Topic: nblog.syszone.co.kr/archives/9636 […]

  27. 2024년 3월 2일

    … [Trackback]

    […] Find More on that Topic: nblog.syszone.co.kr/archives/9636 […]

  28. 2024년 3월 6일

    … [Trackback]

    […] Find More on that Topic: nblog.syszone.co.kr/archives/9636 […]

  29. 2024년 3월 8일

    … [Trackback]

    […] Read More here on that Topic: nblog.syszone.co.kr/archives/9636 […]

  30. 2024년 3월 8일

    … [Trackback]

    […] Find More here to that Topic: nblog.syszone.co.kr/archives/9636 […]

  31. 2024년 3월 16일

    … [Trackback]

    […] Find More here to that Topic: nblog.syszone.co.kr/archives/9636 […]

  32. 2024년 4월 27일

    … [Trackback]

    […] Read More to that Topic: nblog.syszone.co.kr/archives/9636 […]

  33. 2024년 5월 2일

    … [Trackback]

    […] Find More on to that Topic: nblog.syszone.co.kr/archives/9636 […]

  34. 2024년 5월 6일

    … [Trackback]

    […] Find More here on that Topic: nblog.syszone.co.kr/archives/9636 […]

  35. 2024년 6월 4일

    … [Trackback]

    […] Find More on that Topic: nblog.syszone.co.kr/archives/9636 […]

  36. 2024년 6월 14일

    … [Trackback]

    […] Find More on that Topic: nblog.syszone.co.kr/archives/9636 […]

  37. 2024년 7월 7일

    … [Trackback]

    […] Read More to that Topic: nblog.syszone.co.kr/archives/9636 […]

  38. 2024년 7월 25일

    … [Trackback]

    […] Read More to that Topic: nblog.syszone.co.kr/archives/9636 […]

  39. 2024년 7월 28일

    … [Trackback]

    […] Find More on on that Topic: nblog.syszone.co.kr/archives/9636 […]

페이스북/트위트/구글 계정으로 댓글 가능합니다.