В систему нужно дополнительно установить:
— Apache Portable Runtime Library
— Apache Tomcat Native Library
При этом линуксоиды должны обратить внимание, что APR для инициализации во время запуска пытается набрать энтропии из /dev/random, поэтому либо его надо переключить на /dev/urandom, либо настроить /dev/random так, чтобы энтропии хватало для запуска сервера.
Статика будет отдана функцией операционной системы sendfile. APR просто предоставляет оболочку для этой функции, которую можно вызвать из сервлета (либо реализует её сам, если такой функции в ОС нет).
Nginx пользует предварительно выделенную память, пользует epoll/kqueue, в конце концов да, также может использовать sendfile, является FSM заточенным под отдачу статики… Зачем же занимать Thread Pool томката на отдачу статики, если с этим и так прекрасно справляется nginx?.. Мне кажется вполне логичным четко распределять отдачу static и dynamic контента в системе…
Использование apr_socket_sendfile() из сервлетов под Tomcat