我们当前的堆栈是 Apache + Tomcat + MySQL,使用ProxyPass
AJP 来触发从 Apache 到 Tomcat 的请求。我们还在同一站点上运行 PHP for Wordpress,因此需要工作.htaccess
文件。为了解决一个恼人的问题(请参阅此堆栈溢出页面),我们正在考虑替代堆栈。请注意,我们通常非常喜欢 Apache,但这个问题是一个障碍:如果我们不能修复它,我们就不能使用 Apache。
替代方案包括:
- 单独的Tomcat
- Glassfish(Java 应用服务器,从 Tomcat 分叉)
- 码头(Java 服务器)
- 树脂
- LightTPD(轻量级 HTTP 服务器)
- Nginx(轻量级 HTTP 服务器)
在我看来,解决方案分为两个阵营:纯 Java 阵营,例如 Glassfish;或者分裂阵营比如我们现在的 Apache + Tomcat。我们喜欢纯 Java 解决方案的想法,因为更少的移动部件应该意味着更少的出错;但是它们中的任何一个都支持 PHP、.htaccess
文件等吗?
从理论上讲,我们可以用另一种方式进行拆分——有一个简单的前端,只在需要这些特性的那些位上代理 Apache——但实际上这将是 80% 的请求。
人们建议什么选择?
我强烈怀疑您的问题与 AJP 有关。
几周前,我与一位主要的 Tomcat 开发人员一起参加了课程(他正在运行它),他的建议是避免使用 AJP 和 mod-JK 等,并坚持使用常规的 mod-proxy HTTP。
原因:
我的建议是,尝试在当前设置中使用常规 mod-proxy HTTP。这对您来说是最少的更改,它将带您进入使用最广泛和最稳定的 Tomcat 部署架构。
/ 里奇
我目前首选的堆栈是使用 nginx 作为 Apache 的替代品。只要有必要,php-fpm 就可以满足 PHP 的需求。这样的设置非常适合部署 Rails、Magento 和 SugarCRM 等应用程序。
Glassfish 将比 Tomcat 更具可扩展性,因为它使用 Grizzly(基于 NIO)。由于 Java 要求,除了 Tomcat、Jetty 或 Glassfish 的变体之外,您没有太多选择。PHP 可以使用Quercus运行,但最好使用 Nginx 部署它。
Java 上有 PHP 实现,我知道(但没用过)的就是这个。有一篇关于如何在 GlassFish(包括 WordPress)上安装它的博客文章,但我猜在 tomcat 上的安装是一样的。关于 .htaccess,你还没有写出你在那里的确切内容,但如果是用于 URL 重写,那么 UrlRewriteFilter会以相同的语义完成相同的工作。
切诺基?他在哪里 ?http://www.cherokee-project.com/