Browse Tag: 아파치

아파치 vs nginx 웹서버 차이

해당 내용도 면접에서 언급되었던 부분이므로 정리하고 넘어간다.

사실 아파치와 nginx(엔진엑스 라고 읽는다)의 차이점에 대해 찾아본 결과 무엇인가를 정리 할만큼의 차이는 찾지 못했다. 두 웹서버의 태생이 다르기 때문에 차이점이 존재했으나, 기술의 발달과 서로 벤치마킹한 결과(라고 추측) 두 웹서버에서 제공하는 기능은 대부분 비슷하다.

하지만, 많은 사람들이 nginx의 경우 일반적인 상황에서 아파치 보다 조금더 많은 커넥션을 처리한다고 하는데, 그 이유는 아파치의 경우 커넥션 당 하나의 스레드와 프로세스를 생성하지만, nginx의 경우 listener 가 request를 처리하기 때문에 각 request 마다  스레드와 프로세스가 복제 되지 않는다. 이 때문에 메모리적인 측면에서 nginx는 System Resource를 적게 처리한다는 장점이 있다.

 

트렌드 자체가 아파치에서 nginx로 넘어가고 있지만, 그럼에도 불구하고 태생적인 부분(아파치의 경우 CGI를 통한 웹서비스를 위해 생겨남, nginx의 경우  Http Proxy의 목적이 강함)을 이해하고 상황에 맞게 사용하는것이 중요할 듯 하다.

 

참고 : http://blog.naver.com/PostView.nhn?blogId=tmondev&logNo=220737182315, http://knot.tistory.com/88

아파치 톰캣 연동 방법

기술 면접시에 받았던 내용이였으므로 정리해둔다.

톰캣은 WAS 서버지만 웹서버(아파치)의 기능도 제공한다.

그럼에도 아파치를 사용하는 이유는 아파치에서 제공하는 기능들을 톰캣이 제공하지 않기 때문이다.

(아파치만의 기능이라함은.. 1. 서버내에서 PHP와 Java가 동시에 사용될 경우 , 2. 로드벨런싱 기능..)

아파치와 톰캣을 연동하는 방법은 2가지가 있다.

  1. AJP, mod_jk
    AJP란 아파치가 외부 서비스와 연동하기 위한 프로토콜. 이를 구현한 모듈이 mod_jk로 아파치 서버에 설치하여 톰캣과 연동 가능
  2. mod_proxy
    아파치 서버를 프록시 형태로 구현하여 실제 response는 톰캣에서 받아오는 방법

추가적으로 mod_proxy_ajp 라는 모듈이 있지만 proxy방법과 비슷하지만 AJP 프로토콜을 이용한다는 방식이 다르다.

 

참고 : https://www.lesstif.com/pages/viewpage.action?pageId=12943367 , http://joont.tistory.com/55