Apache 的替代品

Apache 的替代品

我们当前的堆栈是 Apache + Tomcat + MySQL,使用ProxyPassAJP 从 Apache 向 Tomcat 发送请求。我们还在同一个网站上运行 PHP for Wordpress,因此需要工作.htaccess文件。为了响应一个恼人的问题(参见 Stack Overflow 页面),我们正在考虑替代堆栈。请注意,我们通常非常喜欢 Apache,但这个问题是一个大问题:如果我们无法修复它,我们就不能使用 Apache。

替代方案包括:

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

在我看来,解决方案分为两个阵营:纯 Java 阵营,例如 Glassfish;或分裂阵营,例如我们当前的 Apache + Tomcat。我们喜欢纯 Java 解决方案的想法,因为移动部件越少,出错的可能性就越小;但是它们中是否有支持 PHP、.htaccess文件等的阵营?

理论上,我们可以用另一种方式进行拆分 - 有一个简单的前端,只在需要这些功能的部分上代理 Apache - 但实际上这将是 80% 的请求。

人们建议什么选择?

答案1

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

几周前,我和一位主要的 Tomcat 开发人员一起参加了一门课程(他正在运行该课程),他的建议是避免使用 AJP 和 mod-JK 等,并坚持使用常规的 mod-proxy HTTP。

原因:

  1. 它是迄今为止最成熟、最稳定的 Tomcat 连接器。
  2. 两个 AJP 实现都没有得到持续开发;两个项目都遭遇了一些停止/启动。
  3. 在这种情况下,NBIO 不会比阻塞 IO 带来任何实际性能提升。

我的建议是,尝试在当前设置中使用常规 mod-proxy HTTP。这对您来说是最小的改变,它将带您进入最广泛使用和最稳定的 Tomcat 部署架构。

/ Richy

答案2

我目前首选的堆栈是使用 nginx 替代 Apache。只要有需要,php-fpm 就会满足对 PHP 的需求。这样的设置对于部署 Rails、Magento 和 SugarCRM 等应用程序非常有效。

答案3

Glassfish 比 Tomcat 更具可扩展性,因为它使用 Grizzly(基于 NIO)。由于 Java 要求,除了 Tomcat、Jetty 或 Glassfish 的变体之外,您没有太多选择。可以使用以下方式运行 PHP栎属,但最好只使用 Nginx 进行部署。

答案4

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

相关内容