【问题标题】:How to make a Rails app on Google App Engine redirect to HTTPS如何使 Google App Engine 上的 Rails 应用重定向到 HTTPS
【发布时间】:2018-03-31 10:18:37
【问题描述】:

我已成功将我的 Rails 应用程序部署到 Google App Engine(我的域也由 Google 托管),现在我想将访问我的 http:// 地址的任何人重定向到我的 https:// 地址。

我找到了使用app.yaml 文件中的handlers 元素为Python 应用程序here 执行此操作的文档,并尝试在我自己的文件中复制它。

我的app.yaml 文件现在包含以下内容:

handlers:
- url: /.*
script: config/application.rb
secure: always
redirect_http_response_code: 301

但是我仍然可以访问 http:// 而不会被重定向,我认为这是因为我通过了 script: config/application.rb 选项。我不知道我应该使用哪个文件或该文件应该包含在 Rails 应用程序中。如果我没有通过 script 选项,部署就会中断。

如果您需要更多信息,请告诉我,并提前感谢您的帮助!

【问题讨论】:

  • 在这种情况下,它是一个 Rails 应用程序,使其独一无二。其他答案已经回答了 Python/Java 等的相同问题,但还没有回答 Rails 的问题。
  • @FelixFortis 您提到的文档是针对标准环境的,Ruby 仅在灵活环境中受支持。这可能很有趣:stackoverflow.com/questions/45842772/…
  • 感谢 Dan,我是 gcloud 新手,这对我很有帮助

标签: ruby-on-rails google-app-engine https gcloud


【解决方案1】:

您可以通过应用程序的config/environments/production.rb 文件强制执行 SSL,您只需添加一行:

Rails.application.configure do
    # Other code...
    config.force_ssl = true # add this line to force HTTPS on production 
end

实际上,这将为您的应用程序做 3 件事:

  1. TLS 重定向
  2. 安全 cookie:在 cookie 上设置 secure 标志
  3. HTTP 严格传输安全 (HSTS)

http://guides.rubyonrails.org/configuring.html了解更多关于您的应用程序配置的信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多