Переадресация Firebase HTTP на HTTPS NGINX для пользовательских доменов, отбрасывающих метод POST для GET - PullRequest
1 голос
/ 01 мая 2019

Firebase не перенаправляет любые запросы HTTP POST в HTTPS POST. Пример:

POST / HTTP / 1.1 Хост: apis.mydomain.com

перенаправляется Firebase NGINX на

GET / HTTP / 1.1 Хост: apis.mydomain.com

если вы явно говорите о https, то NGINX работает правильно: POST -> POST

Итак, когда запрос попадает на хостинг Firebase и перенаправляет ваш запрос в функцию firebase, к которой может обращаться конечная точка https, у метода есть возможность свернуться в GET из метода POST.

Если присмотреться к заголовкам внутри облачной функции Firebase, протокол всегда выражается как http, а не https.

Я предполагаю, что это внутренняя проблема, которую я не могу изменить, однако это проблема того, что я делаю, и это определенно проблема, учитывая, что я не могу изменить NGINX, который обрабатывает мои запросы http (s) .

1 Ответ

1 голос
/ 01 мая 2019

Если вы перенаправляете с кодом состояния 301 или 302, POST понижается до GET.

Вам необходимо использовать статус 307 для поддержания POST во время перенаправления.Подробнее см. в этом документе .

. В Nginx вам понадобится оператор return.Например:

return 307 https://$host$request_uri;
...