【发布时间】:2018-06-21 08:47:52
【问题描述】:
来自$_SERVER php 数组:
$_SERVER['APP_ENV'] prod
$_SERVER['APP_DEBUG'] 0
$_SERVER['TRUSTED_PROXIES'] 172.16.0.0/12
$_SERVER['HTTP_X_FORWARDED_FOR'] XXX.XXX.XXX.XXX
$_SERVER['HTTP_X_FORWARDED_HOST'] my.website.com
$_SERVER['HTTP_X_FORWARDED_PORT'] 443
$_SERVER['HTTP_X_FORWARDED_PROTO'] https
来自 HTTP 标头:
X-Forwarded-For XXX.XXX.XXX.XXX
X-Forwarded-Host my.website.com
X-Forwarded-Port 443
X-Forwarded-Proto https
在src/public/index.php
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
}
在/src/Controller/TestController.php
class TestController
{
public function index(Request $request)
{
$response = new Response();
$response->setContent( $request->getScheme() );
return $response;
}
}
输出
http
但预期的输出是
https
为什么 symfony 返回错误的 http 方案?
【问题讨论】:
标签: php symfony proxy symfony4 traefik