Qbix Server es un servidor web en puro PHP que elimina la pila tradicional Nginx + php-fpm. En lugar de generar workers PHP separados que carguen el framework completo independientemente, el servidor carga una sola vez al iniciarse todas las clases, configuraciones y conexiones a bases de datos, luego fork procesos worker. Los workers fork heredan el estado precargado mediante compartición de memoria copy-on-write, evitando duplicación.

La afirmación de concurrencia se basa en eficiencia de memoria. El php-fpm convencional asigna 30–60MB por worker para código framework idéntico en todos los workers. En un servidor de 8GB, esto limita a aproximadamente 160 workers simultáneos. Qbix Server carga ese código una sola vez (~30MB compartido), luego cada worker suma solo ~5MB de datos por solicitud, permitiendo ~1.600 workers en el mismo hardware.

Los benchmarks de rendimiento en un contenedor de un solo núcleo (PHP 8.3, archivo estático de 13KB) muestran que Qbix Server entrega 56–73% del rendimiento de Nginx dependiendo del modo de concurrencia y configuración keep-alive. La documentación reconoce que esta brecha es inherente: Nginx utiliza I/O sendfile() en kernel-space, notificación de eventos epoll, y C compilado, mientras que Qbix se ejecuta en PHP interpretado con stream_select y procesamiento de archivos en userspace.

Las características clave incluyen almacenamiento en caché de respuestas en memoria con validación ETag y 304, X-Accel-Redirect para control de acceso a archivos (PHP verifica permisos, servidor transmite el archivo sin URL pública), y X-Cache-Tree para invalidación de caché a nivel de componentes (invalidar un componente de página sin vaciar la página completa). El soporte WebSocket está integrado.

La arquitectura utiliza fork-por-solicitud (o pools de workers pre-forked con --workers=N). Cada solicitud se ejecuta en su propio proceso, eliminando fugas de estado – variables globales, propiedades estáticas y conexiones de base de datos se borran al finalizar el proceso. Esto contrasta con sistemas de workers persistentes como FrankenPHP y Swoole, donde el estado estático puede fugarse entre solicitudes no relacionadas sin auditoría cuidadosa.

El servidor se distribuye como código fuente PHP, archivo PHAR de 196KB, o binario estático (~15MB) que incluye PHP 8.3 y extensiones. Requiere PHP 8.1+ con extensiones sockets, pcntl (para señales y workers en Unix), y openssl. El soporte en Windows existe sin pcntl; cada solicitud spawn mediante proc_open con ~50ms de sobrecarga, sacrificando la ventaja de velocidad de precarga.

Opcionalmente, instalar amphp vía Composer actualiza la capa de transporte a HTTP/2 con multiplexing, compresión de encabezados HPACK, y server push. El transporte integrado utiliza stream_select sin dependencias.

El servidor incluye una capa micro-framework: classes/ (auto-cargadas), handlers/ (disparadas por evento bajo demanda), views/ (plantillas PHP), config/ (configuraciones JSON), web/ (raíz de documento público). La misma estructura de directorios se utiliza en la plataforma Qbix completa, permitiendo que proyectos se actualicen más tarde sin reorganización.

Para sitios simples, APIs, o proyectos que no requieran un framework completo, Qbix Server se ejecuta en modo independiente (sin bandera --app). Con --app=/ruta/a/qbix-app, integra la plataforma Qbix completa, enrutando solicitudes a través del despachador del framework y cargando plugins como Users, Streams, y Assets.

El servidor es parte del ecosistema Qbix Platform y se publica bajo licencia MIT.