Apache 网络服务器或 Tomcat 用于 java war 和 php

Apache web server or Tomcat for java war and php

我正在为一家公司构建应用程序,我还必须处理部署。 该应用程序是 java restful API,我通常将其部署在 tomcat 上。应用程序的前端用 PHP 编写(不是我写的)并将安装在同一台机器上。后端必须可以从前端和 Web 访问。

考虑到这是一个生产环境,最好的方法是什么?

  1. 我要在 tomcat 上安装所有东西吗? war 和 php 应用程序。
  2. 我是否在 tomcat 上安装 war 并在 Apache 网络服务器上安装 PHP 前端?
  3. 我是否将 tomcat 连接到 Apache 网络服务器?
  4. 完全是别的东西?

在同一台机器上安装后端和前端是否也有缺点?

如果您的后端使用 Servlet API,您需要一个 servlet 服务器,Tomcat 是一个常见的选择。即使 Tomcat 提供 CGIServlet,我相信没有人会在生产服务器上使用它来 运行 PHP 脚本。所以你至少需要两台服务器。

我会把它扩展到三台服务器 运行:

  • Tomcat 上的后端(绑定到 localhost),
  • PHP FastCGI 服务器上的前端,例如 PHP-FPM(绑定到 Unix 套接字),
  • 像 NGINX(比 Apache2 更轻)这样的代理服务器连接到 PHP-FPM。它不必代理 Tomcat,因为一切都在同一台机器上。