Apache的替代品

我们目前的堆栈是Apache + Tomcat + MySQL,使用ProxyPass AJP从Apache向Tomcat发起请求。 我们也在相同的网站上运行PHP for WordPress,因此需要工作.htaccess文件。 为了回应一个烦人的问题(请参阅此堆栈溢出页面) ,我们正在考虑替代堆栈。 请注意,我们通常非常喜欢apache,但这个问题是一个阻碍:如果我们无法修复它,我们就不能使用Apache。

替代scheme包括:

  • 单独的Tomcat
  • Glassfish(Java应用服务器,来自Tomcat)
  • Jetty(Java服务器)
  • 树脂
  • LightTPD(轻量级HTTP服务器)
  • Nginx(轻量级HTTP服务器)

我看到它的方式,解决scheme分为两个阵营:纯粹的Java阵营,如Glassfish; 或者像我们目前的Apache + Tomcat这样的分裂阵营。 我们喜欢纯Java解决scheme的概念,因为更less的移动部件应该意味着更less的出错; 但他们中的任何一个都支持PHP, .htaccess文件等?

从理论上讲,我们可以用另一种方式进行拆分 – 只需要那些需要这些特性的代理,就可以有一个简单的前端代理Apache,但实际上这只是80%的请求。

人们build议什么select?

我强烈怀疑你的问题与AJP有关。

几个星期前我正在和一个Tomcat的主要开发人员(他正在运行它)进行合作,他的build议是避免AJP和mod-JK等,并坚持使用常规的mod-proxy HTTP。

原因:

  1. 这是迄今为止最成熟稳定的Tomcat连接器。
  2. AJP的实施并没有一贯的发展, 两个项目都经历了一些停顿/开始。
  3. 在这种情况下,NBIO不会导致实际的性能增益超过阻塞IO。

我的build议,尝试使用您的当前设置常规mod-proxy HTTP。 这对你来说是最less的变化,它将带你进入使用最广泛,最稳定的Tomcat部署体系结构。

/ Richy

我目前的首选堆栈是使用nginx作为Apache的替代品。 只要有必要,php-fpm填补了对PHP的需求。 这样的设置很适合部署Rails,Magento和SugarCRM等应用程序。

Glassfish将比Tomcat更具扩展性,因为它使用Grizzly(基于NIO)。 由于Java的要求,除了Tomcat,Jetty或Glassfish的变体以外,没有其他select。 PHP可以使用Quercus来运行,但是使用Nginx来部署它可能会更好。

在Java上有PHP实现,我知道的(但没有使用)是这个 。 有关于如何在GlassFish (包括WordPress) 上安装它的博客文章,但我猜在tomcat上的安装是相同的。 关于.htaccess,你没有写下你到底在那里做了什么,但是如果是用于URL重写的话,那么UrlRewriteFilter是用相同的语义完成相同的工作的。

切诺基? 他在哪里 ? http://www.cherokee-project.com/