虽然nginx处理重定向,但我应该启用Rails force_ssl吗?

时间:2013-08-01 21:29:59

标签: ruby-on-rails ssl nginx passenger

方案
我通过nginx运行Phusion Passenger 我已将nginx配置为使用SSL并将所有HTTP流量重新路由到HTTPS 我是否仍需要在我的Rails应用中启用 force_ssl 选项? 如果是这样,为什么以及有什么优势呢? 如果我不启用它,我会出现哪些安全隐患?

nginx config:

server {
    listen              80; 
    server_name         myapp.com
    rewrite             ^ https://$server_name$request_uri? permanent;
}

server {
    listen              443 ssl;
    server_name         myapp.com;

    ssl_certificate     /etc/ssl/certs/nginx.pem;
    ssl_certificate_key /etc/ssl/certs/nginx.key;

    root /home/user/rails/app/public;

    passenger_enabled on;
}

1 个答案:

答案 0 :(得分:1)

force_ssl选项完成与nginx重写规则相同的操作,因此您不需要force_ssl选项。 force_ssl可以为您提供更多粒度,例如在某些子域或某些部署环境中更容易要求SSL。如果你更喜欢在Rails中而不是在nginx中进行这种配置,那也可能更好。但是,它不会给你任何额外的安全保障。