웹서버/Apache 29

[정보] 접근로그(access log) 설정 및 로그 포맷

1. 개요 웹서버는 클라이언트에서 HTTP 서비스 호출 시에 IP 정보, 호출시간, 응답코드, 응답 바이트 수 등 정보 등을 포함한 접근 로그 보통, access log를 기록한다.access 로그를 기록하는데 있어서 3개의 지시자 - TransferLog, CustomLog, LogFormat - 를 이해해야 한다.가장 자주 사용되고 있는 로그 관련 설정은 아래 예시와 같다. 로그 포맷은 대부분 웹서버에서 표준으로 지원하는 CLF(Common Log Format) 형식으로 기록한다. 2. 지시자 - CustomLog, LogFormat, TransferLog 예시를 보면서 이해하는 것이 가장 빠르다. 예시#1) CustomLog 사용 ...... LogFormat "%h %l %u %t \"%r\" %..

웹서버/Apache 2017.02.21

[툴] 스트레스 테스트 툴 - ab(ApacheBench) 사용법

1. ab 툴이란? - Apache HTTP server Benchmarking Tool 임 - Apache 응답속도를 체크하는 벤치마팅 툴임 - [아파치 설치디렉터리]/bin/ab 명령어임- HTTP/1.0을 사용함에 주의할 것 2. 사용법 $ ab -c [동시사용자수] -n [요청수] -t [테스트시간] URL(호출주소) 예시) 100명 동시사용자 수로 각 사용자당 200회를 호출하고, 60초 동안 호출한다. $ ab -c 100 -n 200 -t 60 http://www.example.com/index.htm 3. 결과 내용- Server Software : 아파치 버전- Server Host Name : 서버 호스트명 - Server Port : 포트 번호- Document Path : 웹문서 위..

웹서버/Apache 2017.01.01

[튜닝] MPM Worker 모델에서 설정 값

Apache 2.2 버전에서 지원하게 된 스레드 방식의 worker 모델에서 설정값을 알아본다. prefork (프로세스 방식) 모델 보다 worker 모델은 프로세스와 스레드 방식으로 작동하기 때문에 저 적은 자원으로 많은 클라이언트를 처리할 수 있어 최근에는 보통 worker 모델 방식을 설정한다. Apache 2.4에서는 아래 옵션이 맞지않을수 있다. ServerLimit 5 StartServers 5 MaxClients 200 MinSpareThreads 25 MaxSpareThreads 100 ThreadsPerChild 25 MaxConnectionsPerChild 0 # 2.3.9 이전 버전에서는 MaxRequestsPerChild ThreadLimit 25 각 옵션들의 의미는 아래와 같다...

웹서버/Apache 2016.10.29

[예제] 동적 모듈(Dynamic Module) 작성 - helloworld

아파치 웹서버는 관리자가 모듈들을 선택하여 서버에 포함할 기능을 결정할 수 있는 모듈화된 프로그램이다. 뒷 단에 WebLogic, JBoss 등 WAS와 연계 시에 플러그인 모듈을 사용하는데, 이때 아파치 재 컴파일 없이 동적으로 설정하고, 설치하는 것을 경험해보았다면 그 방식이 아파치의 동적공유객체(Dynamic Shared Objects, DSO) 모듈로 구현한 것이다. DSO 모듈은 서버를 컴파일할때 컴파일하거나, Apache Extension Tool (apxs)을 사용한다. 아래와 같은 순서로 작성하여 테스트 하면 된다. 1. 소스 작성 별도로 작성하지 않고, 아래 파일을 활용하였다. [소스 예제] http://apache.webthing.com/svn/apache/book/mod_hellowo..

웹서버/Apache 2016.06.20

[Tips] MIME 타입 추가

Apache에서 MIME 타입을 추가하는 방법은 2가지가 있다. mime.types 파일에 설정하고자 하는 MIME 타입을 추가하는 방법과 'AddType' 지시자를 사용하여 추가하는 방법이 있다. 아래는 한글과컴퓨터의 .hwpx 확장자 파일에 대해 MIME 타입 추가하는 예시이다. 1. mime.types 파일에 추가하는 방법 mime.types 파일에 추가하고자 하는 MIME 타입과 파일 확장자 정보를 추가한다. 이 방법은 Apache 업그레이드 시에 mime.types 파일이 변경될 수 있어 권장하지는 않는다. # MIME type (lowercased) Extensions # ====================================================== ...... applic..

웹서버/Apache 2016.06.14

[설정] 가상호스트(VirtualHost) 설정

1. httpd.conf 파일 수정 # Virtual hosts 설정되도록 주석 제거 [변경 전]#Include conf/extra/httpd-vhosts.conf [변경 후]Include conf/extra/httpd-vhosts.conf 2. httpd-vhosts 파일에 설정 설정파일 예 : /apache2/conf/extra/httpd-vhosts.conf 아래와 같이 가상호스트를 설정한다 # 모든 IP의 80 포트에서 요청을 기다림NameVirtualHost *:80 DocumentRoot /www/example1 ServerName www.example.com ErrorLog "logs/example1-error.log" CustomLog "logs/example1-access.log" com..

웹서버/Apache 2016.05.27

[모니터링] 간단한 Apache 모니터링 : server-status

Apache는 "mo-status" 모듈에 모니터링을 위한 server-status 핸들러를 제공한다. server-status 핸들러를 사용하기 위해서는 우선 "mod-status" 모듈을 로딩해야 한다. LoadModule status-module modules/mod_status.so 1. 설정 아래와 같이 httpd.conf 파일에 server-status를 설정한다. 호출은 로컬호스트(127.0.0.1)에서만 호출을 제한한다. SetHandler server-status Order Deny,Allow Deny from all Allow from 127.0.0.1 2. 브라우저에서 호출 http://your.server.name/server-status : 1회 호출 (F5를 통해 refresh ..

웹서버/Apache 2016.05.24

[Tips] L4/프록시 환경에서 클라이언트 IP를 얻는 방법

로그에 클라이언트 IP 정보를 로깅하고자 한다면, "X-Forwarded-For"라는 확장 Header 내용을 출력하면 된다. 로그 포맷을 설정하는 방법은 아래와 같다. 기본적으로 로그 포맷은 아래와 같이 설정되어 있다. LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" %v : 가상호스트명%h : 원격 IP 주소 그러나, 웹서버 앞단에 L4 또는 프록시(proxy)가 존재한다면, 원격 IP 주소에 실제 클라이언트 IP 대신 L4 또는 프록시 IP 정보가 출력된다. 실제 클라이언트 IP 정보가 출력되기를 원한다면 아래와 같이 LogFormat을 설정해주면 된다.(노란색글씨 부분 참조) LogFormat "%v %{X-F..

웹서버/Apache 2016.04.27