Skip to content

Commit 950200b

Browse files
committed
minor #19128 Added docs on how to configure the reverse proxy for a subfolder & Documented the usage of X-Forwared-Prefix (jbtronics)
This PR was squashed before being merged into the 5.4 branch. Discussion ---------- Added docs on how to configure the reverse proxy for a subfolder & Documented the usage of X-Forwared-Prefix If you want to put a symfony application behind a reverse proxy which is configured the application in a subfolder, then this is supported by setting the non-standard `X-Forwarded-Prefix HTTP header`. This was already [added in Symfony 5.2](symfony/http-foundation@d3a2506). However, this is nowhere documented and no good solution on how to achieve this goal is found on the internet. This commit adds documentation on how to use this header. This should apply to all Symfony versions (at least from 5.4 upwards) Commits ------- 06a9da6 Added docs on how to configure the reverse proxy for a subfolder & Documented the usage of X-Forwared-Prefix
2 parents d114e1f + 06a9da6 commit 950200b

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

deployment/proxies.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,29 @@ enough, as it will only trust the node sitting directly above your application
159159
ranges of any additional proxy (e.g. `CloudFront IP ranges`_) to the array of
160160
trusted proxies.
161161

162+
Reverse proxy in a subpath / subfolder
163+
--------------------------------------
164+
165+
If you a running a Symfony application behind a reverse proxy, where the application is served in a subpath / subfolder,
166+
you might encounter the problem that Symfony generates incorrect URLs, which ignore the subpath / subfolder of the reverse proxy.
167+
To fix this, you need to pass the subpath / subfolder route prefix of the reverse proxy to Symfony by
168+
setting the ``X-Forwarded-Prefix`` header. This is required for Symfony to generate the correct URLs. The header can normally be configured
169+
in your reverse proxy configuration. Configure ``X-Forwared-Prefix`` as trusted header to be able to use this feature.
170+
171+
The ``X-Forwarded-Prefix`` is used by Symfony to prefix the base URL of request objects, which is
172+
used to generate absolute paths and URLs in Symfony applications. Without the header, the base URL would be only determined
173+
based on the configuration of the web server running Symfony, which leads to incorrect pathes/URLs, when the application
174+
is served under a subpath by a reverse proxy.
175+
176+
For example if your symfony application is directly served under an URL like ``https://symfony.tld/``
177+
and you would like to use a reverse proxy to serve the application under ``https://public.tld/app/``, you would need
178+
to set the ``X-Forwarded-Prefix`` header to ``/app/`` in your reverse proxy configuration.
179+
Without the header, Symfony would generate URLs based on its servers base URL (e.g. ``/my/route``) instead of the correct
180+
``/app/my/route``, which is required to access the route via the reverse proxy.
181+
182+
The header can be different for each reverse proxy, so that access via different reverse proxies served under different
183+
subpaths can be handled correctly.
184+
162185
Custom Headers When Using a Reverse Proxy
163186
-----------------------------------------
164187

0 commit comments

Comments
 (0)