From 531a55018429236d01db83832b7525b0a99a346e Mon Sep 17 00:00:00 2001 From: flisk Date: Sat, 18 Feb 2023 14:13:04 +0100 Subject: [PATCH 1/2] fix invalid proxy_hide_header in example config --- docs/docs/configuration/storing_remote_media.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/docs/configuration/storing_remote_media.md b/docs/docs/configuration/storing_remote_media.md index ebea01339..1d60053ca 100644 --- a/docs/docs/configuration/storing_remote_media.md +++ b/docs/docs/configuration/storing_remote_media.md @@ -23,7 +23,8 @@ as soon as the post is received by your instance. proxy_buffering on; chunked_transfer_encoding on; proxy_ignore_headers Cache-Control Expires; - proxy_hide_header Cache-Control Expires; + proxy_hide_header Cache-Control; + proxy_hide_header Expires; proxy_pass http://127.0.0.1:4000; } ``` From 1ab0b3a0e23c7c6648e42093b18fdeec7dfa7fab Mon Sep 17 00:00:00 2001 From: flisk Date: Sun, 26 Feb 2023 23:39:18 +0100 Subject: [PATCH 2/2] match nginx config to install config and extend docs a bit --- .../configuration/storing_remote_media.md | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/docs/docs/configuration/storing_remote_media.md b/docs/docs/configuration/storing_remote_media.md index 1d60053ca..deb1651b8 100644 --- a/docs/docs/configuration/storing_remote_media.md +++ b/docs/docs/configuration/storing_remote_media.md @@ -6,34 +6,46 @@ as soon as the post is received by your instance. ## Nginx -``` - proxy_cache_path /long/term/storage/path/akkoma-media-cache levels=1:2 - keys_zone=akkoma_media_cache:10m inactive=1y use_temp_path=off; +The following are excerpts from the [suggested nginx config](../../../installation/nginx/akkoma.nginx) that demonstrates the necessary config for the media proxy to work. +A `proxy_cache_path` must be defined, for example: + +``` +proxy_cache_path /long/term/storage/path/akkoma-media-cache levels=1:2 + keys_zone=akkoma_media_cache:10m inactive=1y use_temp_path=off; +``` + +The `proxy_cache_path` must then be configured for use with media proxy paths: + +``` location ~ ^/(media|proxy) { proxy_cache akkoma_media_cache; slice 1m; proxy_cache_key $host$uri$is_args$args$slice_range; proxy_set_header Range $slice_range; - proxy_http_version 1.1; - proxy_cache_valid 206 301 302 304 1h; - proxy_cache_valid 200 1y; - proxy_cache_use_stale error timeout invalid_header updating; + proxy_cache_valid 200 206 301 304 1h; + proxy_cache_lock on; proxy_ignore_client_abort on; proxy_buffering on; chunked_transfer_encoding on; - proxy_ignore_headers Cache-Control Expires; - proxy_hide_header Cache-Control; - proxy_hide_header Expires; - proxy_pass http://127.0.0.1:4000; + proxy_pass http://phoenix; } +} ``` +Ensure that `proxy_http_version 1.1;` is set for the above `location` block. In the suggested config, this is already the case. + ## Akkoma -Add to your `prod.secret.exs`: +### File-based Configuration + +If you're using static file configuration, add the `MediaProxyWarmingPolicy` to your MRF policies. For example: ``` config :pleroma, :mrf, policies: [Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy] ``` + +### Database Configuration + +In the admin interface, add `MediaProxyWarmingPolicy` to the `Policies` option under `Settings` → `MRF`.