한동안 웹서버를 lighttpd로 외도를 했습니다만, 얼마 전에 다시 아파치로 돌아왔습니다. 역시 쓰는 사람이 적으면 같은 문제를 겪는 사람의 수가 적은 것이 크나큰 한계네요..
lighttpd를 쓰면서 즐거웠던 것은, php를 밖에다 두고 fastcgi로 쓰는 것이 일반화되어 있어서 매뉴얼에 상세히 작성되어 있었기에 왠지 분리를 했다는 뿌듯함에.. 🙂 그리고 프로세스 개수도 적고 해서 퍼포먼스 차이를 별로 실감하지 못하면서도 왠지 빠른 것 같이 느껴지고 그랬는데, 문제는 역시 한 1주일 쓰다보니까 발견이 되었습니다.
lighttpd를 쓰다 보면, 비동기 웹서버의 특성 상 아무래도 fastcgi나 proxy를 써서 백엔드로 많이 넘기게 되는데, 생각보다 개발자가 특이한 상황을 아직 많이 접해보지 못한 것 같습니다.
- fastcgi가 돌다가 에러가 단 1번이라도 나면, 바로 그 핸들러가 서비스 설정에서 빠지기 때문에 보안 상으로는 좋을 지는 몰라도 실제로는 수시로 뻑나서 서비스가 어렵 ㅠ.ㅠ
- fastcgi를 외부 서버로 돌리고 있을 때 서버가 죽어버리면 unknown state: 3이라는 에러로그를 무한정 뿌립니다. (하드디스크 꽉 찰 때까지!) /var에 4기가 할당했는데 왜 자꾸 풀나나 했더니.. 허헛; 이 현상은 소스를 확인해 보니까, fastcgi 비동기 접속 상태가 열댓개가 있는데 그 중에서 자주 나오는 2개만 핸들하고 나머지는 프로그램을 안 해 놨더군요.. -.-;;
- proxy도 같은 현상. unknown state 싫어싫어~
한동안은 “그래 나도 lighttpd에 이바지해야지” 하고, 앗싸 버그! 모드로 수정을 해 보았는데, 별로 하나 수정하면 또 다른데서 뻑나고 그래서.. 흐흐 쉽지가 않네요. 결국은 우리 마음의 고향 아파치로 돌아왔습니다. 돌아오고 나니 어찌나 반갑던지 ㅠ.ㅠ 대충 설정해도 찰떡같이 돌아가 주고! 그래 역시 집이 좋구나.
기왕에 fastcgi-php를 세팅한 김에, 아파치에서도 fastcgi로 돌렸는데, 역시 동적인 서비스에서는 웹 서버의 영향이 거의 없는 것이 맞는지, phpBB의 첫 페이지를 벤치마크해 본 결과 lighttpd로 돌린 것이 230 요청/분, apache로 돌린 것이 227 요청/분 이렇게 나왔습니다. 사실 벤치마크하는 도중에 CPU는 95% 정도를 php가 먹고 있었기 때문에, 정말로 웹서버는 별 영향이 없네요.. 그래 아파치 좋아~ 🙂
아파치에서 php-fastcgi를 설정하면서 지난 번에 했던 php 패치가 제대로 동작을 하지 않았는데, 스크립트 파일 위치를 chroot된 디렉터리를 chroot되기 전 경로 기준으로 주는 바람에 그런 것이어서, 약간 패치를 더 해 봤습니다. 아파치 php-fastcgi 쓰시려는 분들은 써 보세요. 🙂
ㅋㅋㅋ 자다가 스타 패킷 꿈을 꾸더니..
너의 고향은 아파치더냐.. ㅋㅋㅋ
위의 패치가 다운로드되지 않는군요.
저도 lighttpd를 2-3주 돌려봤는데, 가끔씩 서비스가 다운되는 바람에 아직은 프로덕션서버에서 사용할 수 없겠더군요. 이미지 등의 정적파일 서빙이 아파치보다 느린 느낌도 들고, 한글이 들어간 URL을 제대로 처리하지 못하는 문제도 있구요. 결국 apache+fastcgi로 돌아오기로 했답니다.
mod_php에서 사용하던 php_admin_value를 fastcgi에서는 어떻게 구현해야할지 고민이군요. fastcgi+suexec이 잘 안붙는 느낌인데….
아차, URL 링크를 잘못했네요. URL을 수정해 두었습니다. 🙂
fastcgi랑 suexec 같이 쓰는 것은 저도 좀 해 봤는데, 제대로 잘 안 되는 것 같더군요.. 아무래도 여러가지 다른 세팅으로 동시에 여러 개 운영하려면 외부 서버가 편한데, 외부 서버를 아파치에서 띄우게 되면 chroot나 setuid가 불가능해서 조금 불편한 점이 많습니다.