方案
我通过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;
}
答案 0 :(得分:1)
force_ssl选项完成与nginx重写规则相同的操作,因此您不需要force_ssl选项。 force_ssl可以为您提供更多粒度,例如在某些子域或某些部署环境中更容易要求SSL。如果你更喜欢在Rails中而不是在nginx中进行这种配置,那也可能更好。但是,它不会给你任何额外的安全保障。