Skip to content

Commit

Permalink
Minor tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
javiereguiluz committed Feb 22, 2024
1 parent 950200b commit 4d94af1
Showing 1 changed file with 25 additions and 19 deletions.
44 changes: 25 additions & 19 deletions deployment/proxies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -162,25 +162,31 @@ trusted proxies.
Reverse proxy in a subpath / subfolder
--------------------------------------

If you a running a Symfony application behind a reverse proxy, where the application is served in a subpath / subfolder,
you might encounter the problem that Symfony generates incorrect URLs, which ignore the subpath / subfolder of the reverse proxy.
To fix this, you need to pass the subpath / subfolder route prefix of the reverse proxy to Symfony by
setting the ``X-Forwarded-Prefix`` header. This is required for Symfony to generate the correct URLs. The header can normally be configured
in your reverse proxy configuration. Configure ``X-Forwared-Prefix`` as trusted header to be able to use this feature.

The ``X-Forwarded-Prefix`` is used by Symfony to prefix the base URL of request objects, which is
used to generate absolute paths and URLs in Symfony applications. Without the header, the base URL would be only determined
based on the configuration of the web server running Symfony, which leads to incorrect pathes/URLs, when the application
is served under a subpath by a reverse proxy.

For example if your symfony application is directly served under an URL like ``https://symfony.tld/``
and you would like to use a reverse proxy to serve the application under ``https://public.tld/app/``, you would need
to set the ``X-Forwarded-Prefix`` header to ``/app/`` in your reverse proxy configuration.
Without the header, Symfony would generate URLs based on its servers base URL (e.g. ``/my/route``) instead of the correct
``/app/my/route``, which is required to access the route via the reverse proxy.

The header can be different for each reverse proxy, so that access via different reverse proxies served under different
subpaths can be handled correctly.
If your Symfony application runs behind a reverse proxy and it's served in a
subpath/subfolder, Symfony might generate incorrect URLs that ignore the
subpath/subfolder of the reverse proxy.

To fix this, you need to pass the subpath/subfolder route prefix of the reverse
proxy to Symfony by setting the ``X-Forwarded-Prefix`` header. The header can
normally be configured in your reverse proxy configuration. Configure
``X-Forwared-Prefix`` as trusted header to be able to use this feature.

The ``X-Forwarded-Prefix`` is used by Symfony to prefix the base URL of request
objects, which is used to generate absolute paths and URLs in Symfony applications.
Without the header, the base URL would be only determined based on the configuration
of the web server running Symfony, which leads to incorrect paths/URLs, when the
application is served under a subpath/subfolder by a reverse proxy.

For example if your Symfony application is directly served under a URL like
``https://symfony.tld/`` and you would like to use a reverse proxy to serve the
application under ``https://public.tld/app/``, you would need to set the
``X-Forwarded-Prefix`` header to ``/app/`` in your reverse proxy configuration.
Without the header, Symfony would generate URLs based on its server base URL
(e.g. ``/my/route``) instead of the correct ``/app/my/route``, which is
required to access the route via the reverse proxy.

The header can be different for each reverse proxy, so that access via different
reverse proxies served under different subpaths/subfolders can be handled correctly.

Custom Headers When Using a Reverse Proxy
-----------------------------------------
Expand Down

0 comments on commit 4d94af1

Please sign in to comment.