Рейтинг:0

Nginx переписывает правило, чтобы php видел схему https

флаг cn

Я хочу, чтобы мое приложение pho видело только схему https, даже если безопасное соединение уже разорвано.

У меня есть следующая установка: Браузер --https--> nginx --http--> nginx --> сокет php-fpm

Теперь мне нужно, чтобы приложение php отмечало только исходный запрос схемы https.

Это вообще возможно?

Единственная альтернатива, которую я вижу, - это сделать трафик nginx для nginx также через https. Но я хочу избежать накладных расходов на локальный трафик.

Tarion avatar
флаг cn
Другой способ — надеяться, что приложение обрабатывает заголовки x-forwarded-proto. Я проверю и это.
Richard Smith avatar
флаг jp
Приложение PHP, вероятно, будет использовать либо `$_SERVER['REQUEST_SCHEME']`, либо `$_SERVER['HTTP_X_FORWARDED_PROTO']` для определения схемы. Эти параметры можно установить и/или переопределить в файле конфигурации Nginx.
Tarion avatar
флаг cn
HTTP_X_FORWARDED_PROTO — это просто поле заголовка. Как переопределить REQUEST_SCHEME?
Tarion avatar
флаг cn
Может быть, это то, что мне нужно? https://www.nginx.com/resources/wiki/start/topics/examples/fastcgiexample/
Рейтинг:0
флаг cn

Решение состоит в том, чтобы переопределить свойства, используя fastcgi_param REQUEST_SCHEME 'https'; после включить fastcgi.conf;

расположение ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # ПРИМЕЧАНИЕ: у вас должно быть "cgi.fix_pathinfo = 0;" в php.ini

    # # Только с php5-cgi:
    # fastcgi_pass 127.0.0.1:9000;
    # С php5-fpm:
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    включить fastcgi.conf;
    fastcgi_param REQUEST_SCHEME 'https';
    fastcgi_param HTTPS 'включен';
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.