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