我有一个现有的 php/apache httpd 服务器托管一个简单的静态网站。现在我们想使用 Play 添加一个完整的网络应用程序! Java框架无需删除现有的静态网站和服务器。
我可以使用 apache 根据 url 重定向流量,例如将所有流量路由到 product.example.com
或 www.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_rewrite
将 example.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/