오랜 기간 PHP 개발에 몸담았던 한 개발자가 순수 PHP로 구현한 'Qbix 웹서버 1.2'를 공개했습니다. 이 웹서버는 NGINX, Certbot, Cron, Node.js 등 기존 웹 서비스 운영에 필수적이었던 다양한 보조 도구 없이 PHP 단독으로 웹 애플리케이션을 구동할 수 있게 합니다. 개발자는 PHP만으로도 더 빠른 웹서버를 만들 수 있을 것이라는 오랜 의문을 해결하며, 기존 PHP-FPM은 물론 현재 가장 빠른 PHP 런타임들보다도 뛰어난 성능을 자랑한다고 밝혔습니다.
Qbix 웹서버의 핵심 성능 비결은 '프로세스 포크(fork)' 방식에 있습니다. 대부분의 PHP 애플리케이션은 데이터베이스 접근이나 파일 I/O 등 블로킹(blocking) 호출을 사용하는데, 이로 인해 스레드가 대기하는 동안 다른 요청을 처리하기 어렵습니다. Swoole이나 FrankenPHP 같은 비동기(async) 런타임은 이 문제를 해결하지만, 기존 코드를 대폭 수정해야 하는 단점이 있습니다. 반면 Qbix 웹서버는 수백, 수천 개의 프로세스를 생성하여 I/O 대기 중인 프로세스가 발생해도 다른 프로세스가 동시 사용자 요청을 처리할 수 있도록 합니다. 특히, 워커 프로세스 포크 전에 파일과 클래스를 미리 로드(preload)하여, 워드프레스(WordPress) 앱의 경우 각 워커가 약 140KB의 메모리만 차지하도록 최적화했습니다. 이는 'Copy-on-Write' 메커니즘을 활용하여 수만 개의 워커를 적은 메모리로 운영할 수 있게 합니다.
Qbix 웹서버는 단순히 빠른 성능을 넘어 다양한 최신 기능을 통합했습니다. HTTP 요청 처리, 웹소켓(Websocket) 및 룸(room) 기능, HTTP 푸시(Push)를 지원하여 실시간 채팅 서버나 AI 토큰 스트리밍 같은 애플리케이션도 PHP만으로 구현할 수 있습니다. 또한, TLS 인증서 관리, 크론(cron) 작업 실행 등 서버 운영에 필요한 기능들을 내장하고 있으며, X-Cache-Tree와 X-Cache-Invalidate 같은 독자적인 캐싱(caching) 헤더를 통해 웹페이지의 특정 부분만 지능적으로 캐싱하고 무효화할 수 있어 페이지 전체를 다시 렌더링할 필요 없이 효율성을 높였습니다. 이 모든 기능은 MIT 라이선스로 제공되어 누구나 자유롭게 사용할 수 있습니다.