아파치2에 대한 의견을 듣고 싶습니다.

RisaPapa의 이미지

벌써 아파치2가 나온지 2년이 지난듯합니다. 윈32용의 경우에도 MPM이라는
쓰레드 관리 모듈로 인해서 아주 안정적으로 작동하고 있고 많은 테스트를
해본 결과 상용웹서버로서도 충분하다는 생각을 해봅니다.

그리고 리눅스에서도 아주 안정적이라는 생각이 듭니다. 개인적으로 리눅스의
경우에 소스를 수정하고 튜닝한 상태에서 사용하지만 RPM을 사용해 보아도
그 나름대로 안정적이라는 생각이 듭니다. 그러나 아직도 1.3대버전의 모듈이
2.0.X버전대로 포팅이 되지 않은 것들이 있기는 합니다.

실은 윈32에서 오픈소스 활용에 대한 방안과 오픈소스를 이용한 웹서버와
개발 툴을 개발해 왔습니다. 그리고 하청을 주는 회사에도 모두 이 환경에서
개발을 하도록 하여 표준을 만들었기도 합니다. 그런데 이번에 모바일 사이트의
운용을 리눅스로 운영할 계획인 사이트가 하나 있었습니다. 그런데 일본의 공식
사이트의 경우 테스트에 통과를 해야만 모바일서비스를 할 수 있는데 리눅스로
옮겨서 테스트를 받도록 지시를 했는데 개발하청을 받은 회사에서 공식테스트
시간까지 완성할 수가 없었고 세팅할 시간이 없어서 윈2000서버에서 그냥
테스트를 하고 그대로 운영까지도 하게 되었습니다.

펄로 개발이 되었고 FastCGI로 작동이 됩니다. DB는 MySQL을 사용했습니다.
물론 아파치는 2.0.48버전을 사용하고 있습니다.

모바일의 경우에는 정보 이용에 대한 과금을 하기 위해 인증모듈등 나름대로
부하가 걸리는 프로그램이 있고 억세스의 집중이 어마어마한데 아직 한 달간
아무 문제없이 잘 버티고 있습니다. 사실 저역시 윈2000 서버상에서 작동하는
오픈 서버 팩키지를 만들어 왔지만 별로 신통하게 생각지도 않았고 제가 직접
서버를 운영한다면 먼저 FreeBSD를 생각하고 그 다음은 Linux를 사용하려고
생각을 했었습니다.

한때 윈32용으로 아파치 1.3.9 버전을 새롭게 수정하고 다듬어서 SSL이
기본적으로 들어가고 여러 모듈을 윈32로 포팅해서 개인 버전을 만들기도
했는데 아파치2의 초장기 버전을 테스트해보고 성능에 반해서 아파치2로
돌아선 경위도 있습니다.

참 신통하다는 생각과 윈32상에서의 오픈소스를 사용하여 웹서버를 운영하거나
개발을 하는 것에 대해서 다시 생각을 하게 되었습니다. 이제는 오픈소스도 거의
윈32용으로 포팅이 되어 있고 부족한 것들은 시그윈등을 사용하면 리눅스의
기능은 대부분 사용 할수도 있는 시대이기도 합니다.

저는 어떠한 운영시스템에 대해서도 거부반응은 없습니다. 그러나 이번 리눅스
2.6 커넬을 64비트 Opteron에서 성능테스트를 해보고 홀딱 반해 버렸습니다.

결국은 64비트 컴퓨팅으로 흘러가는구나 하는 생각과 함께 아파치2에 대한
개인적인 경험을 글쩍거려 보았습니다.

아직 아파치2를 꺼려하는 기업도 있는데 그러한 이유와 윈32 아파치2에 대한
의견을 듣고 싶습니다. 개인적인 입장에서는 윈32용 아파치2를 회사의 모바일
서비스에 직접 사용을 해보고 그나름대로 잘 견디고 있기 때문에 상용서비스
에도 충분하다라는 결론에 도달했습니다. 그리고 윈2000 서버에서 아파치2로
웹서비스를 하자고 기업에 제안을 했다면 일반적인 반응은 어떨지 상상이
갑니다만 구체적으로 어떤 말이 나올지등에 대해서도 이야기를 듣고 싶습니다.

ironiris의 이미지

주워들은 이야기지만 똑같은 서버에서 X에서 돌아가는 당나귀서버는 5000명정도 커버가능하지만 X를 안띄우고 셸상에서 띄우는 당나귀서버는 25000명 커버가능하다고 하더군요.
확실히 GUI환경을 운영하는데만도 시스템리소스가 많이 들어가는 것 같군요. 그러니 이왕운영하는거.. 이왕 많은 접속처리를 하는거.. GUI환경은 없는게 좋다고 생각합니다.

방준영의 이미지

ironiris wrote:
주워들은 이야기지만 똑같은 서버에서 X에서 돌아가는 당나귀서버는 5000명정도 커버가능하지만 X를 안띄우고 셸상에서 띄우는 당나귀서버는 25000명 커버가능하다고 하더군요.
확실히 GUI환경을 운영하는데만도 시스템리소스가 많이 들어가는 것 같군요. 그러니 이왕운영하는거.. 이왕 많은 접속처리를 하는거.. GUI환경은 없는게 좋다고 생각합니다.

말씀하신 사례는 서버로 쓰는 기계를 클라이언트로 동시에 쓰려고 할 때 생기는 현상 같습니다. 접속 요구 처리하느라 한창 바쁜 대몬을 밑에 두고 위에서는 프로그램 컴파일하고 음악 듣고 인터넷 검색하고 ... 하다 보면 다섯 배 정도 느려지는 건 정상적인 현상으로 보입니다. X 자체는 이벤트 구동형이기 때문에 사용자가 아무 명령도 안내리면(키보드, 마우스 등) CPU 부하에 주는 영향은 거의 없습니다.
channy의 이미지

RisaPapa wrote:

한때 윈32용으로 아파치 1.3.9 버전을 새롭게 수정하고 다듬어서 SSL이
기본적으로 들어가고 여러 모듈을 윈32로 포팅해서 개인 버전을 만들기도
했는데 아파치2의 초장기 버전을 테스트해보고 성능에 반해서 아파치2로
돌아선 경위도 있습니다.

Apache 2.0 대의 SSL 은 버그가 매우 많습니다. 물론 mod_ssl writer가 잘 지원을 하고 있지 않아서 그렇긴 하지만요. SSL 쪽에서 실제로 문제된 것도 본 적이 있습니다. 특별한 이유가 없다면 Apache 1.x 대 버전을 쓰는 것이 회사의 입장에서는 제일 무난하다고 생각됩니다. 안 그래도 기술 지원 하는 회사가 없어서 문제지만 서도...

Channy Yun

Mozilla Korean Project
http://www.mozilla.or.kr

maddie의 이미지

윈도환경에서는 그냥 아파치 파운데이션에 나오는 설치 파일을 이용해 설치하고 사용을 해도 인상적인 성능을 보여 주는 거 같습니다. 실제 운용은 안해보았지만 (서버는 몽땅 프비로 쓰기 때문에) ab따위로 벤치를 해봐도 그럭저럭 상당한 퍼포먼스를 보여주더군요.

거기다가 php를 얹어서 테스트 해보니 튜닝없이 IIS와 거의 비슷한 결과를 본적이 있습니다. 안정성에 대해서는 오래 운영을 안했기 때문에 잘 모르겠구요.

하지만 리눅스에서 아파치2는 좀 그렇더군요. 물론 굉장히 오래전에 세팅을 한 것이지만(아마 1년 전 쯤이거 같군요) 오히려 아파치1.3이 더 빠르더군요. 게다가 php도 제대로 지원이 되지 않아 많은 해킹이 필요하기도 했죠. 그 서버는 하드웨어적 사고(정전으로 퍼억~)로 인해 몇달 가지 못했지만 다시 세팅할 때는 1.3으로 했습니다. 아무래도 1.3이 익숙한 것도 있고 일단은 안정적인 코드라는 믿음이 가서 그렇습니다.(사실 퍼포는 2가 약간 떨어졌지만 눈에 띄는 정도는 아니었고..다른거보다 php사용이 매끄럽지 못하다는 것이 문제였죠)

프비에서 아파치2를 이용하면 프비전용 쓰레드를 쓰는 옵션이 있더군요. 퍼포먼스를 측정해보지는 않았습니다만, 아마도 더 좋지 않을까 생각해봅니다. 아, 그리고 요즘은 php도 바로 잘 붙더군요. 그래도 1.3이 문제도 안일으키고 잘도는 데다가 서비스가 정지하는 상황을 만들기 싫어서 업글을 자제하고 있는 중입니다. ;-)

힘없는자의 슬픔

dhunter의 이미지

아파치 2에서 새로 들어온 스레드 옵션들이 리눅스 환경에서는 별 재미 못보고 서버다운의 원인이 되는 경우가 많더군요. :(

가장 단순한 조합중 하나인 PHP가 잘 안 맞물려 돌아가는것 같습니다.

뭐, 약간 비난 받더라도 (PHP가 reg global off 되는 버전과 맞물렸더군요 :) ) 강제로 APM 버전을 올렸는데, 나쁘지는 않았습니다. :)

from bzImage
It's blue paper

RisaPapa의 이미지

channy wrote:

Apache 2.0 대의 SSL 은 버그가 매우 많습니다. 물론 mod_ssl writer가 잘 지원을 하고 있지 않아서 그렇긴 하지만요. SSL 쪽에서 실제로 문제된 것도 본 적이 있습니다. 특별한 이유가 없다면 Apache 1.x 대 버전을 쓰는 것이 회사의 입장에서는 제일 무난하다고 생각됩니다. 안 그래도 기술 지원 하는 회사가 없어서 문제지만 서도...

사실 OS에러가 나는 경우도 있고 메모리 버그도 조금 있습니다.
mod_ssl에 관해서는 저는 소스를 수정해서 사용하고 있습니다.

펄 역시 5.8.2까지도 메모리 리크 버그가 있습니다.
특히 FastCGI에서는 메로리 리크가 있으면 사용할 수가 없습니다.
그리서 개인적으로 소스를 수정해서 사용하고 있습니다.
이전부터 Php도 따로 수정해서 사용중입니다.

RisaPapa의 이미지

dhunter wrote:
아파치 2에서 새로 들어온 스레드 옵션들이 리눅스 환경에서는 별 재미 못보고 서버다운의 원인이 되는 경우가 많더군요. :(

가장 단순한 조합중 하나인 PHP가 잘 안 맞물려 돌아가는것 같습니다.

뭐, 약간 비난 받더라도 (PHP가 reg global off 되는 버전과 맞물렸더군요 :) ) 강제로 APM 버전을 올렸는데, 나쁘지는 않았습니다. :)

아파치2 워커에 프리프크가 있는데 이것을 사용하면 기존 1.3과 같은
방식으로 작동합니다. 저희 회사에서는 이제는 아파치2로 전부 교체했습니다.
그리고 쓰레드 방식이 안정될 때까지 프리포크를 사용하고 안정되면
쓰레드로 바꿀 생각입니다.

윈도우 개발환경 팩키지는 제가 작성을 했는데 편한 점은 리눅스에서도
아파치2를 사용하고 윈32에서 아파치를 사용함으로서 설정파일을
똑같이 할수가 있다는 점이 아주 편했습니다.

정태영의 이미지

현재 제가 쓰는 모듈이 전부 포팅되지 않았군요 ㅠ_ㅠ

mod_highlight 같은거나....
제가 임의로 마구마구 뜯어고친 mod_autoindex 나 +_+!!!!

그런게 아파치2로 가는길을 막고 있군요 ;)

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

perky의 이미지

RisaPapa wrote:
사실 OS에러가 나는 경우도 있고 메모리 버그도 조금 있습니다.
mod_ssl에 관해서는 저는 소스를 수정해서 사용하고 있습니다.

펄 역시 5.8.2까지도 메모리 리크 버그가 있습니다.
특히 FastCGI에서는 메로리 리크가 있으면 사용할 수가 없습니다.
그리서 개인적으로 소스를 수정해서 사용하고 있습니다.
이전부터 Php도 따로 수정해서 사용중입니다.

OT입니다만, 메모리 릭이라면 대부분의 소프트웨어에서 아주 심각하게 생각할 텐데, 펄이나 아파치쪽에서 업스트림해도 고쳐주지 않았는지 궁금합니다.

You need Python

bubicom의 이미지

적어도... 그냥사용할때는....
괜찮던데요.... apache2

Webalizer Version 2.01
일 방문 Visits 10000명입니다.

그외 말씀하신 것 어려워서 잘 모르겠습니다.. :oops:

-------------------------
모든것에 감사합니다.
http://bubicom.winmir.com

RisaPapa의 이미지

perky wrote:

OT입니다만, 메모리 릭이라면 대부분의 소프트웨어에서 아주 심각하게 생각할 텐데, 펄이나 아파치쪽에서 업스트림해도 고쳐주지 않았는지 궁금합니다.

물론 개발자 메일링 리스트에 알렸습니다. 펄의 경우에는 액티브스테이트사에
테스트해 결과를 알렸습니다. 뉴스그룹에도 메모리리크가 있다고 알렸습니다.
특히 펄의 경우에는 전 버전을 다루어 왔기 때문에 버전별 차이까지 모두
레포팅했는데 아무 반응도 없어 모든 패치를 조사해서 메모리 리크를 발생시킨
패치를 찾아내 할 수 없이 혼자서 해결했습니다. 차기버전 5.10에서는 아마
이 메모리 리크는 없어 질것입니다.

SSL쪽은 조금 문제가 다릅니다. OpenSSL쪽의 문제입니다. SSL세션정보를
메모리에서 삭제를 하고 다시 참조하는 부분도 있고 한데 이곳에서 문제를
일으키는 것을 경험했습니다. 물론 알렸지만 아직도 수정되지 않았습니다.
opensa라는 사이트에서 SSL을 기본적으로 지원하는 웹서버를 배포하는데
이것이 문제가 되어 1년이상 윈32용 아파치2버전 배포버전을 만들지 못하고
있습니다. 이것은 리눅스에서도 문제가 될 확율이 높습니다.

그외에도 사소한 것들이 많이 있습니다.

dhunter의 이미지

별 재미 못본다... 라는거죠. 1.3과 똑같은 방식으로 2를 돌릴거면 재미없고 불안하니까 1.3을 그대로 유지하는... :)

뭐 얼마 안가서 아파치 팀에서 1.3을 포기하는 날이 올지도 모르겠습니다만.

그런데 언급하신 버그들 꽤 심각한데요;

from bzImage
It's blue paper

RisaPapa의 이미지

maddie wrote:

거기다가 php를 얹어서 테스트 해보니 튜닝없이 IIS와 거의 비슷한 결과를 본적이 있습니다. 안정성에 대해서는 오래 운영을 안했기 때문에 잘 모르겠구요.

IIS에서 PHP를 운영하는 것과 아파치에서 운영하는 것은 1년전쯤에 테스트를
해본적이 있는데 아파치가 훨씬 빨랐던 기억이 있습니다. 펄 역시 아파치2가
더 빠릅니다. 그러나 아파치는 HTML페이지출력에서 IIS보다 많이 느립니다.
아파치에서 HTML페이지의 출력을 IIS와 동등하게 하기 위해서는 트릭이
필요한데 파일캐쉬나 MMAP쪽의 모듈을 참고해서 설정하면 가능합니다.

IIS에서 PHP를 ISAPI모듈로 운영하는 것은 아직 안정성에서 문제가 있다고
생각합니다. 그래서 IIS에도 그렇고 윈32 환경의 아파치에서도 FastCGI의
운영방식이 더 안정적입니다. 또 여러 장점도 있기도 합니다.

리눅스역시 제우스 서버가 그러하듯이 PHP를 FastCGI상에서 운영하는 것이
여러모로 잇점이 있는 듯합니다. 아직 많은 사람들에게 FastCGI가 그렇게
알려지지도 않았고 정보나 도큐멘트가 적어서 접근하기가 조금 쉽지 않지만
저 개인적으로는 모듈방식보다 FastCGI을 더 선호합니다.

maddie의 이미지

Quote:
리눅스역시 제우스 서버가 그러하듯이 PHP를 FastCGI상에서 운영하는 것이 여러모로 잇점이 있는 듯합니다.

움..php도 FastCGI상에서 운영이 가능한가요? 처음 듣는 정보인데...정보를 구할 수 있을까요?

힘없는자의 슬픔

RisaPapa의 이미지

maddie wrote:

움..php도 FastCGI상에서 운영이 가능한가요? 처음 듣는 정보인데...정보를 구할 수 있을까요?

리넉스는 윈도우상에서 하는 것보다 훨씬 쉽습니다.

아래는 임시로 윈도우2000 FastCGI상에서 작동하고 PHP주소입니다.

phpinfo();를 출력한 페이지이고 가상 디렉토리 S:\ 에서 작동하고 있습니다.

http://202.216.236.76/demo/tmp/phpenv.php

maddie의 이미지

흥미롭군요. fastCGI는 perl만 도는 걸로 알고 있었는데.. 이거 리눅스 or 프비 상에서 빌드할 수 있나요?

힘없는자의 슬픔

RisaPapa의 이미지

maddie wrote:
흥미롭군요. fastCGI는 perl만 도는 걸로 알고 있었는데.. 이거 리눅스 or 프비 상에서 빌드할 수 있나요?

네, 가능합니다... 영어페이지가 대부분이지만 검색하면 많이 있습니다.
윈도우보다 쉽게 구축할 수가 있을 것입니다.

톰캣5 부터는 세션 리플리케이션 기능이 있어 클러스터링 서버를 쉽게 구축할
수가 있는데 FastCGI로도 응용하면 세션을 공유하므로서 클러스터링 서버를
구성할 수도 있습니다.

akbar의 이미지

RisaPapa wrote:

----차기버전 5.10에서는 아마
이 메모리 리크는 없어 질것입니다.

SSL쪽은 조금 문제가 다릅니다. OpenSSL쪽의 문제입니다. SSL세션정보를
메모리에서 삭제를 하고 다시 참조하는 부분도 있고 한데 이곳에서 문제를
일으키는 것을 경험했습니다. 물론 알렸지만 아직도 수정되지 않았습니다.
opensa라는 사이트에서 SSL을 기본적으로 지원하는 웹서버를 배포하는데
이것이 문제가 되어 1년이상 윈32용 아파치2버전 배포버전을 만들지 못하고
있습니다. 이것은 리눅스에서도 문제가 될 확율이 높습니다.

그외에도 사소한 것들이 많이 있습니다.

제가 리눅스에서 아파치2.0 에서 fastcgi 와 openssl 을 쓸려고 했었는데 mod_ssl 이 아파치2.0 을 위한 버전으로는 안나와 있는 걸로 알고 있습니다.
쓰신분들은 어떻게 쓰셨는지요..