当前位置:  开发笔记 > 后端 > 正文

Rails:为什么我的服务器将http重定向到https

如何解决《Rails:为什么我的服务器将http重定向到https》经验,为你挑选了1个好方法。

我有一个我在Heroku上构建的rails应用程序,我已将其配置为在那里使用SSL.现在我转向AWS EC2,我想让我的应用程序版本在没有SSL的情况下运行.完成后,我将在稍后添加SSL功能.

我的堆栈是Puma + Nginx + PostgreSQL,我正在使用Rails 4.2.4,Ruby 2.2.3和Capistrano 3.4.0.

我记得在我的应用程序中,我曾经插入过该行

config.force_ssl = true

在config/environments/production.rb中.我评论了这一点,希望我的应用程序能够重新使用http.但事实并非如此:即使在评论该行后,每当我访问我的EC2公共IP(52.35.82.113)时,请求都会在端口80(http)上发送,并被重定向到端口443(https).

当我curl -v http://localhost在我的EC2实例上运行它返回时,可以更清楚地看到这一点:

* Rebuilt URL to: http://localhost/
* Hostname was NOT found in DNS cache
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
* Server nginx/1.4.6 (Ubuntu) is not blacklisted
< Server: nginx/1.4.6 (Ubuntu)
< Date: Sat, 12 Dec 2015 12:22:56 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Location: https://localhost/
< 
* Connection #0 to host localhost left intact

对于这些东西,我不是很有经验.我认为最初的问题是我的Nginx的配置,在我刚才的问题在这里有人建议我,有什么错我的Nginx的配置和重定向从Rails的到来.我怀疑是这种情况,因为我在Nginx中看不到可以强制执行重定向的任何内容,但如果您认为问题可能存在,那么您可以在上面的链接中看到很多相关代码.

除了上面打印的force_ssl之外,Rails中的其他内容可能导致重定向?

谢谢大家的帮助.如果您有任何疑问或需要更多信息,请与我们联系!



1> eremite..:

这个要点表明它可能是因为HSTS标题:

因此,如果您启用force_ssl一次,即使[if]您稍后将配置值更改为false,您之前用于打开[r]应用程序的浏览器仍会记住此网站(使用域名识别)[和]需要[您]使用HTTPS,并自动将您重定向到HTTPS连接.

根据此页面,您可以通过访问chrome://net-internals/#hstsChrome和about:permissionsFirefox并~/Library/Cookies/HSTS.plist在Safari中删除来删除HSTS条目.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有