如何在PHP和Java/Play框架应用程序之间共享一个Apache实例?

如何在PHP和Java/Play框架应用程序之间共享一个Apache实例?,java,php,apache,playframework,Java,Php,Apache,Playframework,我有一个现有的php/apachehttpd服务器,它托管一个简单的静态网站。现在我们想添加一个完整的网络应用程序使用播放!Java框架,无需删除现有的静态网站和服务器 我可以使用apache根据url重定向流量吗?例如,将所有流量路由到product.example.com或www.example.com/product播放!服务器 如果是这样的话,我该怎么做呢?我也这么做了,使用Apache非常简单。像通常为静态站点设置虚拟主机一样设置虚拟主机,但对于Play主机,请使用Apachemod_

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

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


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

我也这么做了,使用Apache非常简单。像通常为静态站点设置虚拟主机一样设置虚拟主机,但对于Play主机,请使用Apache
mod_proxy
重定向到端口,如下所示:

确保运行
a2enmod proxy\u 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>

服务器管理员webmaster@localhost
代理主机
ServerName product.example.com
ServerAlias www.product.example.com
ProxyPass/http://127.0.0.1:9000/  #传入请求传递到Play应用程序
ProxyPassReverse/http://127.0.0.1:9000/ #传出响应返回给用户
这会将请求重定向到您的域或指定给Play应用程序的子域,该应用程序位于localhost(或您想要的任何其他主机)的指定端口上。您可以为使用不同平台或语言创建的其他应用程序添加其他VirtualHost指令。这也是实现应用程序负载平衡的一种好方法

如果您不想使用子域,可以在静态站点上使用
mod_rewrite
example.com/product
的请求重定向到Play framework代理


下面是有关此主题的更多文档:

这不是编程问题,属于ServerFault。不,这不属于服务器故障。服务器故障用于专业系统管理问题。这可能是本文的主题,因为应用程序环境是一个以开发人员为中心的问题。然而,我们仍然需要看到一些真正有用的努力。提示:
mod_proxy
,FastCGI。