Comments 15
стандартный томкат комплектуется по умолчанию APR? или нужно допиливать?
Забыл написать, действительно.
В систему нужно дополнительно установить:
— Apache Portable Runtime Library
— Apache Tomcat Native Library
При этом линуксоиды должны обратить внимание, что APR для инициализации во время запуска пытается набрать энтропии из /dev/random, поэтому либо его надо переключить на /dev/urandom, либо настроить /dev/random так, чтобы энтропии хватало для запуска сервера.
В систему нужно дополнительно установить:
— Apache Portable Runtime Library
— Apache Tomcat Native Library
При этом линуксоиды должны обратить внимание, что APR для инициализации во время запуска пытается набрать энтропии из /dev/random, поэтому либо его надо переключить на /dev/urandom, либо настроить /dev/random так, чтобы энтропии хватало для запуска сервера.
Если честно, не очень понимаю необходимость отдавать статику томкатом, если есть nginx и X-Accel-Redirect.
wiki.nginx.org/NginxXSendfile
wiki.nginx.org/NginxXSendfile
ИМХО, это тоже самое :)
Статика будет отдана функцией операционной системы sendfile. APR просто предоставляет оболочку для этой функции, которую можно вызвать из сервлета (либо реализует её сам, если такой функции в ОС нет).
Статика будет отдана функцией операционной системы sendfile. APR просто предоставляет оболочку для этой функции, которую можно вызвать из сервлета (либо реализует её сам, если такой функции в ОС нет).
да, но в случае с томкатом, это будет нативный вызов через кучу врапперов, что не есть гуд
Мне кажется, обработкой займётся не Tomcat-Java, а Tomcat Native Library, то есть будет без лишних wrapper'ов.
Так как если TNL есть в ClassPath, то обработка идёт HTTP -> TNL -> Java -> TNL -> HTTP
(TNL создаёт свой Thread Pool для Java)
Так как если TNL есть в ClassPath, то обработка идёт HTTP -> TNL -> Java -> TNL -> HTTP
(TNL создаёт свой Thread Pool для Java)
Nginx пользует предварительно выделенную память, пользует epoll/kqueue, в конце концов да, также может использовать sendfile, является FSM заточенным под отдачу статики… Зачем же занимать Thread Pool томката на отдачу статики, если с этим и так прекрасно справляется nginx?.. Мне кажется вполне логичным четко распределять отдачу static и dynamic контента в системе…
Что насчет ограничения доступа к файлу уровнем приложения (файлы из закрытой авторизацией зоны)?..
А ещё можно воспользоваться библиотекой UploadFile от того же Apache. Получится очень неплохой сервлет, сам недавно кодил.
А с NIO-коннектором к tomcat transferTo тоже не через sendfile работает?
UFO just landed and posted this here
Sign up to leave a comment.
Использование apr_socket_sendfile() из сервлетов под Tomcat