我有一个使用 capistrano 部署在 VPS 上的 5 个 Rails 应用程序(ubuntu 18.04 和 Nginx),起初一切正常,但我必须为 HTTPS 安装安全证书(letsencrypt),该应用程序在 HTTPS 中运行但是当我尝试发出发布请求时,我在浏览器中看到此消息“您想要的更改被拒绝。”
这就是我的日志显示的内容
HTTP Origin header (https://domainename) didn't match request.base_url (http://domainename)
我看到一些链接讨论了同样的问题,我尝试了他们的解决方案,但它对我不起作用
Devise doesn't login in Google Chrome
https://github.com/rails/rails/issues/22965
https://github.com/plataformatec/devise/issues/4847
注意
我使用Mozilla浏览器时没有这个问题!!!!但我有(Chrome、Opera、Safari ...)
最佳答案
我通过添加以下内容修复了它:
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Host $ host;
在我的nginx.conf中的@puma部分中,我遇到了这个问题,因为我使用capistrano进行部署,它稍微改变了文件nginx.conf的配置 我希望它能帮助别人! :)
关于ssl - 为什么在添加 ssl Nginx 后我使用 chrome 的 Rails 5 应用程序出现 HTTP 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54047622/