java - 用于 java war 和 php 的 Apache Web 服务器或 Tomcat
问题描述
我正在为一家公司构建一个应用程序,我还必须处理部署。该应用程序是一个 java restful API,我通常部署在 tomcat 上。应用程序的前端是用 PHP 编写的(不是我写的),将安装在同一台机器上。后端必须可以从前端和 Web 访问。
考虑到这是一个生产环境,最好的方法是什么?
- 我是否将所有内容都安装在tomcat上?战争和php应用程序。
- 我是否在 Apache Web 服务器上的 tomcat 和 PHP 前端安装战争?
- 我是否将 tomcat 连接到 Apache Web 服务器?
- 完全不同的东西?
在同一台机器上同时拥有后端和前端是否也有缺点?
解决方案
如果您的后端使用 Servlet API,则需要一个 servlet 服务器,而Tomcat是一个常见的选择。即使 Tomcat 提供CGIServlet,我相信没有人在生产服务器上使用它来运行 PHP 脚本。所以你至少需要两台服务器。
我会将它扩展到三台服务器并运行:
- Tomcat 上的后端(绑定到
localhost
), - PHP FastCGI 服务器上的前端,如PHP-FPM(绑定到 Unix 套接字),
- 像 NGINX(比 Apache2 更轻)这样的代理服务器来连接到
PHP-FPM
. 它不必代理 Tomcat,因为一切都在同一台机器上。
推荐阅读
- php - 使用日期时间比较两个自定义日期字段中的月份
- python - 在 Python 中,我如何从文件中读取值并将它们放入 RawArray?
- html - 单击按钮时如何隐藏文本
- hive - Hive - where 子句中的多个子查询失败
- python - 将可变数量的列传递给 Pyspark .Agg()
- c - 如何检查文件是否写入成功?
- pdf - ghostscript pdf 到 postscript 的转换需要很长时间
- reactjs - 如何在 React 中将结果数据从一个页面发送到另一个页面
- javascript - React Native - 如何使用本地化和 react-navigation 来跨屏幕访问翻译?
- ios - Swift 在 iOS 模拟器中使用 AVAudioEngine 托管 AUv3 崩溃