@@ -164,8 +164,31 @@ handling the request::
164
164
// ...
165
165
$response = $kernel->handle($request);
166
166
167
+ Overriding configuration behind hidden SSL termination
168
+ ------------------------------------------------------
169
+
170
+ Some cloud setups (like running a Docker container with the "Web App for Containers"
171
+ in `Microsoft Azure `_) do SSL termination and contact your web server over http, but
172
+ do not change the remote address nor set the ``X-Forwarded-* `` headers. This means
173
+ the trusted proxy funcationality of Symfony can't help you.
174
+
175
+ Once you made sure your server is only reachable through the cloud proxy over HTTPS
176
+ and not through HTTP, you can override the information your web server sends to PHP.
177
+ For Nginx, this could look like this:
178
+
179
+ .. code-block :: nginx
180
+
181
+ location ~ ^/index\.php$ {
182
+ fastcgi_pass 127.0.0.1:9000;
183
+ include fastcgi.conf;
184
+ # Lie to symfony about the protocol and port so that it generates the correct https URLs
185
+ fastcgi_param SERVER_PORT "443";
186
+ fastcgi_param HTTPS "on";
187
+ }
188
+
167
189
.. _`security groups` : https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-groups.html
168
190
.. _`CloudFront` : https://en.wikipedia.org/wiki/Amazon_CloudFront
169
191
.. _`CloudFront IP ranges` : https://ip-ranges.amazonaws.com/ip-ranges.json
170
192
.. _`HTTP Host header attacks` : https://www.skeletonscribe.net/2013/05/practical-http-host-header-attacks.html
171
193
.. _`nginx realip module` : https://nginx.org/en/docs/http/ngx_http_realip_module.html
194
+ .. _`Microsoft Azure` : https://en.wikipedia.org/wiki/Microsoft_Azure
0 commit comments