Apache

Apache 2.4 에서 RemoteIPInternalProxy 의미

Apache 2.4 에서 RemoteIPInternalProxy 는 다음과 같이 사용합니다.

이 문법을 X-Forwared-For 와 함께 사용하면 다음과 같다.

X-Forwarded-For 는 원격지 주소를 192.0.2.1 이 된다. 그런데 RemoteIPInternalProxy 의 영향으로 인해서 192.0.2.1 은 내부 Proxy 로 지정되었기 때문에 X-Forwarded-For 의 원격지 주소는 198.51.100.2 가 된다. ps, X-Forwarded-For 는 여러개의 IP를 기록할 수 있다. 만일 여러개를 기록할 경우에 맨 오른쪽에 IP가 최종 원격지 IP 주소가 된다.

Apache, Linux

Apache Proxy Load Balancer 구성

Apache 웹 서버는 세계적으로 많이 사용되는 웹 서버이다. 많은 기능을 내장하고 있는데, 그 중에서 Proxy Load Balancer 구성에 대해서 설치부터 설정까지 기술 한다. 기술 환경은 다음과 같다. 배포판: Ubuntu14.04 64bit Apache: 2.4.25 컴파일 설치. 운영환경도 아주 중요하다. 이 문서에서 기술한 운영 환경은 AWS 환경이며 External ELB 바로 뒤에 Apache 웹 서버가 있다. 이 Apache 웹 서버는 뒤에 WAS 서버가 존재하는 환경이다. 의존성 패키지 설치 컴파일 설치를 하기전에 의존성 패키지를 다음과 같이 설치해 줍니다.

  설치 설치는 소스를 받아 직접 […]

Apache, Linux

Apache 2.4 환경변수를 이용한 로그 남기기 – mod_setenvif

Apache 2.4 에서 로그를 남기는 다양한 방법이 있는데, mod_setenvif 모듈을 이용하면 다양한 조건에 부합한 것만 로그를 남길 수 있다.

위 예제는 access.2017-04-13.log 파일에 로깅을 하는데 combinedio 로 정의된 로그 포맷대로 기록하며 86400(1day) 하루에 한번 로그 로테이션을 하도록 설정한 것이다. 그런데, 만일 기록되어지는 로그중에 특정 형식의 URI 로 시작하는 경우에 별도의 로그 파일에 기록하고 싶다면 어떻게 해야할까?

위 처럼 /wp-admin 으로 시작하는 URI 를 별도 파일로 기록하고 싶다면 다음과 같이 하면 된다.

위와같이 mod_setenvif 모듈이 제공하는 SetEnvIfNoCase 문을 […]

Apache, Tomcat, WAS

Apache Tomcat 연동하기 – mod_jk

Tomcat 을 단독으로 운영하지는 않는다. 여러 서버에서 설치한 후에 이것을 부하분산하는 방법으로 운영하는데, 자주 쓰이는 방법이 Tomcat 앞단에 Apache 웹 서버를 두고 이 둘을 연결해주는 방법으로 사용을 한다. 이때 연결방법이 여러가지가 있는데, Tomcat 과 Apache 를 위한 전용의 모듈이 있는데 그것이 바로 mod_jk 이다. mod_jk 는 AJP 프로토콜을 사용해서 이 둘을 연결해주는데, 다른 연결들보다 성능이 우수하다. 환경 이번 테스트한 환경은 다음과 같다. OS: CentOS7 x86_64 Java Version: jdk-1.8.0_u65 WAS: Tomcat 8.0.30 그리고 서버는 한대이고 Tomcat 을 여러개 설치했다. 이때에 하나의 […]

Apache, Linux

아파치 로그 분석하기

아파치 웹 서버에는 접속에 대한 로그를 남길 수 있습니다. 로그의 형식은 다양하지만 대략적으로 어느 컴퓨터(IP 주소)에서 어떤 기기, 어떤 프로그램을 이용해서 어떤 웹 페이지를 접속했는지, 각 컨텐츠의 전송량등의 정보가 담깁니다. 이 문서는 아파치 로그 분석하기 에 대한 것입니다. 전송량 통계 로그 파일에 컨텐츠의 전송량이 담기기 때문에 이것들을 전부 더하면 아파치 웹 서버가 내보낸 전송량을 알 수 있겠지요? awk 쉘 스크립트로 간단하게 할 수 있습니다.

여기서 중요한 것이 access_log 파일에 전송량을 표시하는 위치 입니다. 위 명령어 앞줄에 ‘s += $10’ […]

Apache, Linux

Apache Options, AllowOverride

Apache 설정 중에 Directory 디렉티브(Directive) 내에서 Options, AllowOverride 등을 사용할 수 있는데 이에 대해서 자세히 알아 보겠습니다.   AllowOverride AllowOverride 는 AccessFileName 에 지정한 파일에서 아파치의 설정을 덮어쓸 수 있도록 해줍니다. 보통 AccessFileName 에는 .htaccess 를 지정해주고 DocumentRoot 에 .htaccess 파일에 아피치 설정에 대한 것을 해두면 아파치는 이 파일을 읽어서 반영해 줍니다. 만일 AccessFileName 을 지정하지 않았고 .htaccess 파일이 필요없을 경우에는 AllowOverride 를 사용할 필요가 없기 때문에 다음과 같이 None 으로 설정해주면 좋습니다.

AllowOverride 를 사용할때에 지정할 수 있는 […]

Apache, Linux

Apache mod_ruid2 설치

Apache 는 TCP/IP 접속과 접속이 이루어진 후에 컨텐츠를 처리하는 프로세스의 권한이 다릅니다. TCP/IP 접속관련은 Root 권한으로 동작하고 이후 동작은 아파치의 설정에 따른 권한으로 실행 됩니다.   아파치의 동작 권한은 다음과 같이 설정 합니다.

위 설정은 아파치의 컨텐츠를 처리하는 프로세스가 nobody:nobody 권한으로 동작하도록 지정한 것입니다. 그런데, 이렇게 하면 버추얼 호스트(VirtualHost) 설정을 할 경우에 보통 각 계정별로 RootDocument 를 설정하는데, 이럴경우 아파치 프로세스는 한가지의 권한으로 동작하고 모든 계정에 접근해야 함으로 각 계정에 액세스 권한을 줘야 합니다. 그래서 주로 다음과 같이 해줘야 […]

Apache, Linux

Apache mod_deflate 설정

Apache 2.4 에서 mod_deflate 설정 에 대한 문서 입니다. Apache 2.2 에비해서 Apache 2.4 에서의 설정이 새롭게 바뀌었습니다.     1. Requirement Apache 2.4 에서 mod_deflate 를 사용하기 위해서는 다음과 같은 모듈들도 활성화되어야 합니다. mod_setenvif : 환경변수를 정의한다. mod_headers : HTTP 요청 헤더와 응답 헤더를 조절하고 수정하는 지시어를 제공한다. mod_deflate : 서버의 출력을 네트웍으로 클라이언트에 보내기 전에 압축하는 기능 제공 위 모듈들이 Apache 2.4.10 에 활성화 되어 있어야 합니다. 2. 설정 mod_deflate 의 설정은 Apache 2.2 와 2.4 가 차이가 […]

Apache, Linux

Apache 설정

Apache 설정이 필요 합니다. 그대로 쓰더라도 아무 문제가 없기는 하지만 아주 조금만 설정을 해주면 보안도 높아지고 성능도 좋아집니다. 이 문서의 내용은 Apache 2.4.10 기준으로 작성 되었습니다.   1. Default Character Set 아파치의 기본 문자셋을 지정해 줍니다.

2. Server Signature 서버의 자세한 정보를 숨깁니다. 이는 컴파일 설치를 했다면 conf/extra/httpd-default.conf 파일에 정의되어 있으며 httpd.conf 에서 extra/httpd-default.conf 파일을 Include 해주면 활성화됩니다.

3. 디렉토리 리스팅 비활성화 컴파일 설치를 했다면 httpd.conf 파일에서 extra/httpd-autoindex.html 파일을 활성화 하지 않습니다. 그리고 다음과 같이 디렉토리 리스팅을 비활성화 해줍니다. […]

Apache, Linux

Apache 2.4 새로운 기능

이 문서는 Apache 2.4  새로운 기능에 대해 기술한 문서 입니다.     1. 개요 Apache 2.2 는 2005년 후반기에 발표되고 지금까지 큰 버전의 변화가 없이 사용되고 있습니다. 그러다 최근 고용량의 정적 파일 및 큰 규모의 싸이트가 많아짐에 따라서 대량 접속에도 적은 리소스를 사용하면서 빠르게 서비스 할 수 있는 웹서버가 절실해졌습니다. 이에 러시아에 한 업체가 자사 싸이트 운영을 위해서 웹 서버를 제작했고 이것을 공개했는데 그것이 바로 Nginx 입니다. Nginx 의 빠른 응답속도와 적은 리소스 사용은 그동안 Apache 서버에 답답해했던 많은 사용자들을 […]