Skip to content

Commit d452137

Browse files
tony-cojaviereguiluz
authored andcommitted
Added support for standard Forwarded header
Refs symfony/symfony#11379
1 parent 5c0f8fb commit d452137

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

cookbook/request/load_balancer_reverse_proxy.rst

+16-8
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,14 @@ an AWS Elastic Load Balancer) or a reverse proxy (e.g. Varnish for
77

88
For the most part, this doesn't cause any problems with Symfony. But, when
99
a request passes through a proxy, certain request information is sent using
10-
special ``X-Forwarded-*`` headers. For example, instead of reading the ``REMOTE_ADDR``
11-
header (which will now be the IP address of your reverse proxy), the user's
12-
true IP will be stored in an ``X-Forwarded-For`` header.
10+
either the standard ``Forwarded`` header or non standard special ``X-Forwarded-*``
11+
headers. For example, instead of reading the ``REMOTE_ADDR`` header (which
12+
will now be the IP address of your reverse proxy), the user's true IP will be
13+
stored in a standard ``Forwarded: for="..."`` header or a non standard
14+
``X-Forwarded-For`` header.
15+
16+
.. versionadded:: 2.7
17+
``Forwarded`` header support was introduced in Symfony 2.7
1318

1419
If you don't configure Symfony to look for these headers, you'll get incorrect
1520
information about the client's IP address, whether or not the client is connecting
@@ -57,9 +62,9 @@ the IP address ``192.0.0.1`` or matches the range of IP addresses that use
5762
the CIDR notation ``10.0.0.0/8``. For more details, see the
5863
:ref:`framework.trusted_proxies <reference-framework-trusted-proxies>` option.
5964

60-
That's it! Symfony will now look for the correct ``X-Forwarded-*`` headers
61-
to get information like the client's IP address, host, port and whether or
62-
not the request is using HTTPS.
65+
That's it! Symfony will now look for the correct headers to get information
66+
like the client's IP address, host, port and whether the request is
67+
using HTTPS.
6368

6469
But what if the IP of my Reverse Proxy Changes Constantly!
6570
----------------------------------------------------------
@@ -90,9 +95,12 @@ other information.
9095
My Reverse Proxy Uses Non-Standard (not X-Forwarded) Headers
9196
------------------------------------------------------------
9297

93-
Most reverse proxies store information on specific ``X-Forwarded-*`` headers.
94-
But if your reverse proxy uses non-standard header names, you can configure
98+
Although `rfc7239`_ recently defined a standard ``Forwarded`` header to disclose
99+
all proxy information, most reverse proxies store information on non standard
100+
``X-Forwarded-*`` headers.
101+
But if your reverse proxy uses other non-standard header names, you can configure
95102
these (see ":doc:`/components/http_foundation/trusting_proxies`").
96103
The code for doing this will need to live in your front controller (e.g. ``web/app.php``).
97104

98105
.. _`security groups`: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/using-elb-security-groups.html
106+
.. _`rfc7239`: http://tools.ietf.org/html/rfc7239

0 commit comments

Comments
 (0)