## Nginx
+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;
```
- 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 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`.