Firebase HTTP 到 HTTPS NGINX 重定向自定义域,删除 GET 的 POST 方法

标签 firebase express nginx google-cloud-functions firebase-hosting

Firebase 无法将任何 HTTP POST 请求重定向到 HTTPS POST。例如:

POST/HTTP/1.1 主机:apis.mydomain.com

由 Firebase NGINX 重定向到

获取/HTTP/1.1 主机:apis.mydomain.com

如果你对 https 明确,那么 NGINX 可以正常工作:POST -> POST

因此,当请求到达 Firebase 托管并将您的请求重定向到可通过 https 端点访问的 Firebase 函数时,该方法有可能从 POST 方法折叠为 GET。

仔细查看 Firebase 云功能内部的 header ,协议(protocol)始终表示为 http,而不是 https。

我假设这是一个我无法修改的内部问题,但是,这是我正在做的事情的一个问题,而且这绝对是一个问题,因为我无法修改正在处理我的 http(s) 请求的 NGINX .

最佳答案

如果您使用 301 或 302 状态代码进行重定向,POST 将降级为 GET。

您需要使用 307 状态来维护跨重定向的 POST。请参阅this document了解详情。

在 Nginx 上,您需要使用 return 语句。例如:

return 307 https://$host$request_uri;

关于Firebase HTTP 到 HTTPS NGINX 重定向自定义域,删除 GET 的 POST 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55933327/

相关文章:

django - Nginx为Django应用提供静态文件

express - 为什么node-lame模块保存的mp3文件音调高/播放速度快?

javascript - 如何在一台机器上启动多个 Node/套接字服务器

ios - 从 VC1 向 VC2 传递值

javascript - Firebase实时数据库如何根据网络应用程序中的可用性过滤数据

javascript - 为什么三元运算符默认为 true

ssl - web端如何实现Https面向nginx及其背后的几个微服务

nginx - 如何为 nginx 入口中的特定位置添加 limit_req 区域

ios - Firebase 通知仅显示在控制中心

angular - 错误 : No Firebase App '[DEFAULT]' has been created