>А зачем томкату апач?
>>Chtobi bistro staticheskie stranitsi pokazivat. A tomcat budet tolko >>dinamikoi zanimatsa.
На самом деле на не сильно нагруженных сайтах tomcat не так уж и сильно апачу на статике сливает.
Вот что говорят сами томкетовцы на странице Tomcat FAQ:
# Speed. Apache is faster at serving static content than Tomcat. But unless you have a high traffic site, this point is useless. But in some scenarios, tomcat can be faster than apache. So benchmark YOUR site.
Вот ссылк ана бенчмарк, кого подробности интересуют
http://tomcat.apache.org/articles/benchmark_summary.pdf
>А какие преимущества дает этот mod_jk? Зачем он вообще нужен? Что-то >кажися все причины написаные Mike Millson могут работать и без mod_jk.
Балансировка нагрузки/кластеризация, вот что дает mod_jk
At this point, Apache and Tomcat should be working separately in standalone mode. You can run Tomcat in standalone mode as an alternative to Apache. In fact, in some cases, it is said that Tomcat standalone is faster than serving static content from Apache and dynamic content from Tomcat. However, there are the following compelling reasons to use Apache as the front end:
1. You can use Apache to buffer slow connections. Tomcat uses java.io, which uses a thread for each request, so Tomcat can run out of connections as the number of slow requests grows. This could be an issue if your application supports a large number of dial-up users.
2. You can use a connector such as mod_jk to load balance amongst several Tomcat instances.
3. You can take advantage of Apache features such as cgi and PHP.
4. You can take advantage of Apache modules such as mod_rewrite, mod_headers, and mod_expire.
5. You can isolate virtual hosts in their own Tomcat instances.
The increased functionality obtained by using Apache on the front end can outweigh the effort required to install and configure a connector.
Далее собственно по пунктам. Альтернативы, так сказать:
1. Правда. Ничего с этим пока поделать нельзя. Кажется есть планы по замене части кода на Java NIO, но когда это будет... Может в Tomcat6.
2. Правда. Но можно заменить каким нибудь mod_proxy или еще чем. Но зачем изобретать велосипед...
3. Правда. Однако уже есть проект от Jetty, доступный в исходниках, по портированию PHP5 на J2EE. И это даже работает. Портированы язык+все реально необходимые базовые библиотеки. По запросу дописывают библиотеки расширений, которые еще не реализованы. Нет никаких проблем запустить это на Tomcat, это просто фильтр-сервлет.
Кроме того, Tomcat тоже поддерживает CGI
4. Правда. Однако правда и то, что реализовать то-же самое и можно на Tomcat+servlet-filter|custom valve. Опять-же смотря по целесообразности...
5. Скажем так, реализовать это можно и в самом Tomcat'е, причем несколькими способами в зависимости от того, насколько изолированными должны быть среды. Понятие virtual host в Tomcat есть.