diff --git a/api/config/settings/common.py b/api/config/settings/common.py
index 5e895bea553ed9f5e346057793d64d90913872f0..de1d653cb91fa3518273b8b103ed74fdee4b9259 100644
--- a/api/config/settings/common.py
+++ b/api/config/settings/common.py
@@ -390,6 +390,12 @@ REST_FRAMEWORK = {
 ATOMIC_REQUESTS = False
 USE_X_FORWARDED_HOST = True
 USE_X_FORWARDED_PORT = True
+
+# Wether we should use Apache, Nginx (or other) headers when serving audio files
+# Default to Nginx
+REVERSE_PROXY_TYPE = env('REVERSE_PROXY_TYPE', default='nginx')
+assert REVERSE_PROXY_TYPE in ['apache2', 'nginx'], 'Unsupported REVERSE_PROXY_TYPE'
+
 # Wether we should check user permission before serving audio files (meaning
 # return an obfuscated url)
 # This require a special configuration on the reverse proxy side
diff --git a/api/funkwhale_api/music/views.py b/api/funkwhale_api/music/views.py
index d03b55e50fb16506102e43d2429fbae9b9fc172b..224d085b6dd897642c5e84007bc456f8af029487 100644
--- a/api/funkwhale_api/music/views.py
+++ b/api/funkwhale_api/music/views.py
@@ -238,7 +238,10 @@ class TrackFileViewSet(viewsets.ReadOnlyModelViewSet):
                 f.serve_from_source_path)
         response = Response()
         filename = f.filename
-        response['X-Accel-Redirect'] = file_path
+        if settings.REVERSE_PROXY_TYPE == 'apache2':
+            response['X-Sendfile'] = file_path
+        elif settings.REVERSE_PROXY_TYPE == 'nginx':
+            response['X-Accel-Redirect'] = file_path
         filename = "filename*=UTF-8''{}".format(
             urllib.parse.quote(filename))
         response["Content-Disposition"] = "attachment; {}".format(filename)