我有一個我在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