我有一个我在Heroku上构建的rails应用程序,我已经配置它在那里使用SSL。现在,我正在转向AWS EC2,并希望在没有SSL的情况下使用我的应用版本。一旦完成,我将在稍后添加SSL功能。Rails:为什么我的服务器将http重定向到https
我的堆栈是Puma + Nginx + PostgreSQL,我正在使用Rails 4.2.4,Ruby 2.2.3和Capistrano 3.4.0。
我记得在我的应用程序,我曾经插入的行
config.force_ssl = true
在配置/环境/ production.rb
。我评论了这一点,期待我的应用程序能够很好地与http协同工作。但事实并非如此:即使在评论该行后,每当我访问我的EC2公共IP(52.35.82.113)时,请求都将在端口80(http)上发送,并被重定向到端口443(https)。
这可以更清楚地看到,当我在我的EC2实例上运行curl -v http://localhost
它返回:
* 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配置中,在我之前的问题here中,有人向我建议我的Nginx配置没有问题,而且重定向来自Rails。我怀疑是这种情况,因为我在Nginx中看不到任何可以强制重定向的东西,但是如果您认为问题可能存在,那么您可以在上面的链接中看到很多相关的代码。
除了上面列出的force_ssl之外,还有哪些Rails会导致重定向?
感谢您的帮助。如果您有任何疑问或需要更多信息,请告知我们!
我猜你的nginx的配置,您已经做了力SSL。 – Emu
你有没有重新启动你的Puma服务器? – Tobias
嗨@Tobias。是的,我使用'ps'来查找进程ID并使用'kill -s SIGUSR2' –
Dennis