java - 如何在我的 PHP 和 Java/Play Framework 应用程序之间共享一个 Apache 实例?

标签 java php apache playframework

我有一个现有的 php/apache httpd 服务器托管一个简单的静态网站。现在我们想使用 Play 添加一个完整的网络应用程序! Java框架无需删除现有的静态网站和服务器。

我可以使用 apache 根据 url 重定向流量,例如将所有流量路由到 product.example.comwww.example.com/product 到 Play !服务器?

如果是这样,我该怎么做?

最佳答案

我也这样做了,使用 Apache 很容易。就像通常为静态网站设置 VirtualHosts 一样,但对于 Play 主机,请使用 Apache mod_proxy 重定向到端口,如下所示:

确保运行a2enmod proxy proxy_http,然后设置代理主机,如下所示:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ProxyPreserveHost On
    ServerName product.example.com
    ServerAlias www.product.example.com
    ProxyPass / http://127.0.0.1:9000/  #incoming requests pass to Play app
    ProxyPassReverse / http://127.0.0.1:9000/ #outgoing responses go back to user
</VirtualHost>

这会将请求重定向到本地主机(或您想要的任何其他主机)指定端口上的 Play 应用程序指定的域或子域。您可以为使用不同平台或语言创建的其他应用程序添加其他 VirtualHost 指令。这也是平衡 Play 应用程序负载的好方法。

如果您不想使用子域,可以在静态网站上使用 mod_rewriteexample.com/product 请求重定向到 Play 框架代理。

以下是有关该主题的更多文档:http://www.playframework.com/documentation/2.2.0/HTTPServer

关于java - 如何在我的 PHP 和 Java/Play Framework 应用程序之间共享一个 Apache 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19393934/

相关文章:

java - 从字符串中准确检索数据

php - CodeIgniter,Ajax 调用未进入 Controller

ruby - Chef 错误在资源 `start` 上执行操作 'service[httpd]'

java - 为我的按钮着色的最佳方式?

java - 识别新创建的文件并处理它们

php - 使用 MySQL,不选择存在于不同表中的用户的最佳方法是什么?

apache - HTTP 身份验证与 cookie

php - 在 Ubuntu 18.04 LTS 上安装 wordpress

java - 在 Fragment 的 onActivityCreated() 之前调用 Activity onStart()

php - 即使条件为 false,is_null 也不起作用的问题