apache, nginx

조회 수 1489 추천 수 3

apache는 Prefork MPM는 접속당 cpu, memory 사용량이 증가하여 조금 무거운 경향이 있습니다.
nginx 의 event-driven방식은 부하가 생기더라도 cpu, memory사용량이 크게 증가하지 않습니다.

apache도 2.4부터는  event MPM이 기본 모듈로 추가되고 확장성과 성능을 위해 Proxy모듈이 추가 되어 많이 개선되었습니다.
event MPM 과 nginx를 비교할 때 
apache evevt MPM은 자원 사용측면에서 순수 enent-driven 방식인 nginx와는 비슷하다고 보기에는 어려움이 있다는 견해가 있는 반면,
대규모 사이트의 경우 별 차이가 없다는 견해도 있습니다.
어쨋든 정적인 컨텐츠에는 nginx가 우세하고 동적인 컨텐츠에는 apache가 우세하다는 견해는 일반적인 것 같습니다.

그런데  nginx도 단점이 있습니다. (상용버전인 nginx plus제외)
바로 동적 모듈을 지원하지 않는다는 것입니다.
yum install 또는 apt-get install 이렇게 설치 했을 때
apache는 재컴파일을 할 필요가 없고 필요한 모듈을 설정파일에서 추가 삭제 할 수 있습니다.
제공되는 모듈이 없을 경우에도 모듈만 컴파일 한 후 설정파일에서 추가만하면됩니다.
그런데 nginx에서는 기본제공 모듈 이외에 다른 모듈이 필요하면 nginx자체를 재컴파일해야 합니다.
예를 들어 유저별로 사이트별로 트래픽을 제한하고자 할 때 apache는 cband모듈을 설정파일에서 추가만 하면 됩니다.
nginx 서드파티 모듈입니다.
https://www.nginx.com/resources/wiki/modules/
끝에서 3번째 모듈이 트래픽제어하는 모듈입니다.
https://github.com/vozlt/nginx-module-vts
(이 모듈 제작자는 우리나라 분이고 xe공홈에도 자주 출몰하던 분입니다.)

이 모듈을 추가 하려면 nginx를 새로 빌드해야합니다.

제 경우에는 ModSecurity를 필수적으로 사용하는데 ㅠㅠ
해서 저는 웹서버를 nginx reverse proxy for apache 로 구성할 수 밖에 없었습니다.
nginx에서 ssl, http/2만 지원하고 apache에서 php-fpm,ModSecurity를 구동하는 방식으로... 

1core, 1G memory에서 이렇게 운영하고 있습니다.

 

요약
nginx : 기본모듈로 충분한 경우에 사용
apache : 2.4 버전 event MPM 필수, 

 

휘즈

profile
XE에 최적화된 서버를 구축, 유지보수해 드립니다.
보안서버(ddos방어, spam방지) 설치 세팅해드립니다.
보안 서버는 다음 과 같은 작업을 합니다.
- 커널 세팅
- 방화벽 설정
- WAF 설치 및 설정
- XE 전용 룰 세팅
  • profile
    좋은정보 감사합니다.
    안그래도 nginx에서 트래픽 제어 하는 방법을 찾고 있었는데 테스트 해봐야 겠습니다.....^^
  • profile profile
    지난번 댓글에 대답을 못했는데 여기 적혀있네요!
  • profile profile
    저도 reverse proxy 로 사용중이 었거든요....^^;;
    시간날때 테스트 서버에 적용해 보아야 겠네요.
  • profile profile
    방법 공유해주시면 감사하겠습니다. ㅠㅠ;
  • profile
    좋은 정보 감사합니다.