처리 방식 | 특성 |
서버 방식 |
Apache 사용 mod |
Process | non-threaded (thread-safe) non-thread-safe 모듈 사용 가능 안정성, 다소 느림 | mpm=prefork (Apache) FastCGI (IIS) | |
Thread | threaded (non-thread-safe) thread-safe 모듈 사용해야함 확장성, 다소 빠름 |
mpm=worker (Apache) ISAPI(IIS) | mod_fcgid (mod_fastcgi) |
Event | event-driven (async.) 저비용, 빠름, 확장성 검증 필요 | mpm=event (Apache 2.4) Nginx |
[apache vs nginx]
Apache: 많은 reference, 많고 안정화된 mod (특히 mod_rewrite)
Nginx: 성능, 저비용, 적은 reference 로 인한 어려움
[thread-safe vs non-thread-safe]
thread-safe : 모듈내에 이미 동기화가 고려되어 있으므로, 다소 느릴수 있으나 별도 동기화는 필요없음
non-thread-safe : 사용자가 동기화를 관리해야하거나, 개별 프로세스라 동기화가 필요없는 방식
[CGI vs fast-CGI]
CGI: 요청시 마다 전담 프로세스를 띄우고 종료
fast CGI: 프로세스 pool을 활용해 매핑하는 방식이라 빠름, 종료 시점을 적절히 결정하여 pool을 정리할 필요 있음