如何在PHP和Java/Play框架应用程序之间共享一个Apache实例?
我有一个现有的php/apachehttpd服务器,它托管一个简单的静态网站。现在我们想添加一个完整的网络应用程序使用播放!Java框架,无需删除现有的静态网站和服务器 我可以使用apache根据url重定向流量吗?例如,将所有流量路由到如何在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_
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。