如何更改端口Play Authenticate用于重定向和电子邮件URL?

时间:2014-01-07 16:33:58

标签: java playframework playframework-2.0 play-authenticate

目前我们在端口9000上运行我们的Play应用程序,Apache作为前端HTTP服务器,如下所示:

<VirtualHost *:80>
    ServerName vms.gltd.net

    ProxyPass /http-bind http://vms.gltd.net:5280/http-bind/
    ProxyPassReverse /http-bind http://vms.gltd.net:5280/http-bind/

    ProxyPass / http://vms.gltd.net:9000/
    ProxyPassReverse / http://vms.gltd.net:9000/
</VirtualHost>

然而,当用户注册时,Play Authenticate使用play.mvc.Http.Request中的端口,该端口为9000而不是80.

有没有办法覆盖Play Authenticate使用的端口,还是我们必须将Play应用移动到自己的服务器并在端口80上运行?

感谢,

-Leon

1 个答案:

答案 0 :(得分:0)

the Play documentation

尝试此操作
  

高级代理设置

     

使用HTTP正面服务器时,请求   地址被视为来自HTTP服务器。在通常的设置中,   你们都有Play应用程序和代理运行的地方   机器,Play应用程序将看到来自127.0.0.1的请求。

     

代理服务器可以向请求添加特定标头以告知   请求来自的代理应用程序。大多数Web服务器都会   添加一个X-Forwarded-For标头,其远程客户端IP地址为   第一个论点。如果代理服务器在localhost上运行   从127.0.0.1连接,Play将信任其X-Forwarded-For标头。   如果您在其他计算机上运行反向代理,则可以进行设置   应用程序中的trustxforwarded配置项为true   配置文件,如下:

trustxforwarded=true 
     

但是,主机标头不受影响,它仍将由代理发出。如果使用Apache 2.x,则可以添加如下指令:

ProxyPreserveHost on 
     

host:标头将是原始主机   请求标头由客户端发出。通过结合论文二   技术,您的应用程序似乎将直接暴露。

     

如果您不希望此播放应用占据整个根目录,请添加   代理配置的排除指令:

ProxyPass /excluded !