使用Nginx的SSL和Play Framwork 2.2.x

使用Nginx的SSL和Play Framwork 2.2.x,ssl,nginx,playframework-2.0,Ssl,Nginx,Playframework 2.0,我正在AmazonEC2端口9000上运行我的Play应用程序。 我将Nginx配置为在端口443上侦听的反向代理 以下是我的nginx配置: proxy_buffering off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_

我正在AmazonEC2端口9000上运行我的Play应用程序。 我将Nginx配置为在端口443上侦听的反向代理

以下是我的nginx配置:

proxy_buffering        off;
proxy_set_header       X-Real-IP $remote_addr;
proxy_set_header       X-Scheme $scheme;
proxy_set_header       X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header       Host $http_host;
proxy_http_version     1.1;

upstream my-app {
    server 127.0.0.1:9000;
}

server {
    server_name www.my-app.com my-app.com;
    rewrite ^(.*) https://www.my-app.com$1 permanent;
}

server {
    listen               443;
    ssl                  on;
    ssl_certificate      /home/my-app.com/certificate.crt;
    ssl_certificate_key  /home/my-app.com/certificate.key;
    keepalive_timeout    70;
    server_name          www.my-app.com;
    location / {
        proxy_pass       http://my-app;
    }
}
我的问题是:我是否需要使用HTTPS而不是HTTP来启动我的Play应用程序,或者在nginx级别设置SSL就足够了? 鉴于我希望我的所有页面都通过HTTPS打开


谢谢。

您不需要在代理和应用程序之间使用SSL连接,无论如何,在这种情况下,请确保应用程序端口无法从世界访问-最有可能是使用亚马逊的安全规则(或者使用其他提供商/操作系统时使用防火墙)