Apache(6)
-
Ajp Protocol packetSize 제한 오류
최근 Tomcat과 Apache를 연동하는 도중에 Apache에서 다음과 같은 에러 메시지가 나타났습니다. [Fri May 13 19:09:51 2022] [79415:140343571771968] [error] ajp_connection_tcp_get_message::jk_ajp_common.c (1409): (node2) wrong message size 65536 [Fri May 13 19:09:51 2022] [79415:140343571771968] [error] ajp_get_reply::jk_ajp_common.c (2289): (tomcat) Tomcat is down or network problems. Part of the response has already been sent to t..
2022.05.19 -
Apache MPM
Apache MPM의 개념 Apache MPM은 Multi Processing Module의 약자로 Apache가 받아들인 요청을 처리하기 위해 자식 process에게 분배하는 방식을 의미합니다. Apache MPM의 종류 Prefork Prefork 방식은 하나의 요청에 하나의 웹서버 프로세스를 할당하여 처리하도록 하는 방식입니다. 실행중인 프로세스를 fork를 이용해 복제하여 실행하고 다른 여러 모듈들을 사용하는데 호환성이 좋은 편입니다. 다만 프로세스는 소비하는 메모리가 많아서 요청이 급증하면 메모리가 부족할 수도 있습니다. Worker Worker 방식은 요청을 스레드 단위로 처리합니다. 기본 사용 메모리는 Prefork 방식보다 낮으며 스레드 간에 메모리를 서로 공유합니다. Event Event..
2022.01.06 -
Apache 서버 업데이트 이슈
최근 Apache 보안 이슈로 인해 서버를 업데이트를 하며 여러 문제가 발생해 해당 이슈와 해결 방안에 대해 정리를 해봅니다. 참고로 서버는 Centos 6과 7버전입니다. libpcre.so.0 cannot open shared object file no such file or directory 여기서 libpcre는 정규 표현식을 지원하는 라이브러리입니다. .so가 붙는 파일들은 리눅스의 동적 라이브러리 파일로 프로그램 실행 후 필요할 때 호출됩니다. 에러 내용을 보면 libpcre의 동적 라이브러리를 찾을 수 없다는 내용입니다. 이러한 문제를 해결하는 방법은 아래와 같습니다. 링크 재생성 일반적으로 libpcre.so.0나 libpcre.so.1은 /lib나 /lib64 디렉토리 내부에 libpcr..
2021.12.01 -
Apache Section 설정
파일 시스템 섹션 지시어에 포함된 지시어들은 지정한 파일 시스템 디렉토리와 그 하위 디렉토리에 적용됩니다. .htaccess 파일을 이용해도 결과는 똑같습니다. 다음 설정을 예로 들면, /var/web/dir1 이하 디렉토리에서 디렉토리 지시어 적용이 됩니다. Options +Indexes 지시어에 포함된 지시어들은 어떤 디렉토리에 있는지 관계 없이 지정한 이름을 가진 파일에 적용됩니다. 다음 예시를 보면, 파일이 어느 디렉토리에 있는지와 관계 없이 private.html이란 이름을 한 파일의 접근을 거부합니다. Require all denied 는 정규 표현식을 이용해 디렉토리에 대한 설정을 적용합니다. 다음 예시를 보면, '/www/' 디렉토리 하위의 숫자 3개로 구성된 이름의 모든 디..
2020.06.15 -
Apache ErrorDocument 설정
Apache 서버를 운영 중에 오류가 발생했을 때, 404 not foud error, 500 Internal Server Error 등의 에러 메시지가 그대로 노출됩니다. 개발 시 에러 메시지가 노출되면 오류 메시지를 바로 확인 가능하기 때문에 개발하는 입장에서는 수정 개발이 용이한 장점이 있습니다. 하지만 시스템 운영 시에는 일반 사용자가 알 수 없는 에러 메시지를 볼 필요가 없습니다. 또한 오류 발생 시 서버 경로도 노출되기 때문에 프로그램을 조금이라도 아는 사람이 의도치 않은 경로로 접속할 수도 있습니다. 이러한 상황을 방지하기 위해서는 오류 발생 시에 개발자가 의도한 화면이 보여지도록 처리해야 합니다. 이러한 처리는 Apache의 기본 설정을 해주는 httpd.conf 파일에서 할 수 있습니다...
2020.06.09 -
Kafka
1. Apache Kafka란 Apache Kafka란 대용량의 실시간 로그 처리에 특화되어 설계된 메시징 시스템입니다. Kafka는 Pub/Sub 모델을 기반으로 동작하며 크게 producer, consumer, broker로 구성됩니다. 그림으로 표현하면 아래와 같이 나타납니다. Producer: 데이터를 발생시키고 Kafka Cluster에 적재하는 프로세스 Kafka Cluster: 카프카 서버로 이루어진 클러스터 Broker: 카프카 서버 Zookeeper: 분산 코디네이션 시스템으로, Kafka Broker를 하나의 Cluser로 코디네이팅하는 역할을 하며, Cluster의 Leader를 발탁하는 방식을 제공 Topic: Kafka Cluster에 데이터를 관리할 때 그 기준이 되는 개념. T..
2020.05.08