Nginx 重写规则使 php 看到 https 方案

Nginx 重写规则使 php 看到 https 方案

我希望我的 pho 应用程序只能看到 https 方案,即使安全连接已经终止。

我有以下设置:浏览器--https--> nginx --http--> nginx --> php-fpm 套接字

现在我需要 php 应用程序仅记录原始的 https 方案请求。

那可能吗?

我看到的唯一替代方案是让 nginx 到 nginx 的流量也通过 https。但我想避免本地流量的开销。

答案1

fastcgi_param REQUEST_SCHEME 'https';解决方案是使用after覆盖属性include fastcgi.conf;

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

    #   # With php5-cgi alone:
    #   fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    fastcgi_param   REQUEST_SCHEME  'https';
    fastcgi_param   HTTPS           'on';
}

相关内容