Welcome! Log In Create A New Profile

Advanced

Re: fastcgi_param REQUEST_SCHEME $scheme

Maxim Dounin
June 02, 2015 10:42PM
Hello!

On Tue, Jun 02, 2015 at 04:59:53PM -0400, S.A.N wrote:

> РНР скрипты которые работали под Apache, получали перемененную окружения
> REQUEST_SCHEME, в fastcgi_params этот параметр не назначается, я прописал
> fastcgi_param REQUEST_SCHEME $scheme.
>
> Вопрос, не нарушил ли я спецификацию FastCGI, если нет, тогда почему этот
> параметр не указан в fastcgi_params из коробки?

Параметр REQUEST_SCHEME не предусматривается спецификацией CGI (и
соответственно FastCGI), и в общем случае может содержать
произвольное значение. В Apache 2.3.11+ через него передают схему
запроса. Больше, судя по всему, это решение нигде не работает:

http://stackoverflow.com/questions/18008135/is-serverrequest-scheme-reliable

Однако в целом мне такой подход кажется куда более правильным, чем
неочевидные проверки параметра HTTPS (который тоже ни разу не
стандартный), и наверное добавить в fastcgi_params по умолчанию
стоит.

Патч:

# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1433298498 -10800
# Wed Jun 03 05:28:18 2015 +0300
# Node ID dbe6d01361b01c7e3b2a80f40492a180d242abcb
# Parent 0a096e2e51fcbb536007d94bf3edfc308e214f56
Added REQUEST_SCHEME parameter.

The REQUEST_SCHEME parameter was introduced in Apache 2.3.11 and seems
to be used by some scripts now. It looks more logical than previously
used HTTPS.

diff --git a/conf/fastcgi.conf b/conf/fastcgi.conf
--- a/conf/fastcgi.conf
+++ b/conf/fastcgi.conf
@@ -11,6 +11,7 @@ fastcgi_param DOCUMENT_URI $docum
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;
+fastcgi_param REQUEST_SCHEME $scheme;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
diff --git a/conf/fastcgi_params b/conf/fastcgi_params
--- a/conf/fastcgi_params
+++ b/conf/fastcgi_params
@@ -10,6 +10,7 @@ fastcgi_param DOCUMENT_URI $docum
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;
+fastcgi_param REQUEST_SCHEME $scheme;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
diff --git a/conf/scgi_params b/conf/scgi_params
--- a/conf/scgi_params
+++ b/conf/scgi_params
@@ -9,6 +9,7 @@ scgi_param DOCUMENT_ROOT $document
scgi_param SCGI 1;
scgi_param SERVER_PROTOCOL $server_protocol;
scgi_param HTTPS $https if_not_empty;
+scgi_param REQUEST_SCHEME $scheme;

scgi_param REMOTE_ADDR $remote_addr;
scgi_param REMOTE_PORT $remote_port;
diff --git a/conf/uwsgi_params b/conf/uwsgi_params
--- a/conf/uwsgi_params
+++ b/conf/uwsgi_params
@@ -9,6 +9,7 @@ uwsgi_param PATH_INFO $documen
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param HTTPS $https if_not_empty;
+uwsgi_param REQUEST_SCHEME $scheme;

uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;

--
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

fastcgi_param REQUEST_SCHEME $scheme

S.A.N June 02, 2015 04:59PM

Re: fastcgi_param REQUEST_SCHEME $scheme

Maxim Dounin June 02, 2015 10:42PM

Re: fastcgi_param REQUEST_SCHEME $scheme

S.A.N June 03, 2015 06:43AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 270
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready