nginx反代Scaleway s3对象储存媒体文件配置

本文最后更新于:2022年10月4日 晚上

nginx反代Scaleway s3对象储存媒体文件的配置文件模板。

参考

配置文件

例如 s3.nl-ams.scw.cloud 是你的 YOUR_S3_HOSTNAME:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
proxy_cache_path /tmp/nginx_mstdn_media levels=1:2 keys_zone=mastodon_media:100m max_size=1g inactive=24h;

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name YOUR_BUCKET_NAME;
root /var/www/html;

ssl_certificate /etc/letsencrypt/live/YOUR_BUCKET_NAME/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/YOUR_BUCKET_NAME/privkey.pem;

keepalive_timeout 30;

location = / {
index index.html;
}

location / {
try_files $uri @s3;
}

set $s3_backend 'https://YOUR_BUCKET_NAME.s3.nl-ams.scw.cloud';

location @s3 {
limit_except GET {
deny all;
}

resolver 8.8.8.8;
proxy_set_header Host YOUR_BUCKET_NAME.s3.nl-ams.scw.cloud;
proxy_set_header Connection '';
proxy_set_header Authorization '';
proxy_hide_header Set-Cookie;
proxy_hide_header 'Access-Control-Allow-Origin';
proxy_hide_header 'Access-Control-Allow-Methods';
proxy_hide_header 'Access-Control-Allow-Headers';
proxy_hide_header x-amz-id-2;
proxy_hide_header x-amz-request-id;
proxy_hide_header x-amz-meta-server-side-encryption;
proxy_hide_header x-amz-server-side-encryption;
proxy_hide_header x-amz-bucket-region;
proxy_hide_header x-amzn-requestid;
proxy_ignore_headers Set-Cookie;
proxy_pass $s3_backend$uri;
proxy_intercept_errors off;

proxy_cache mastodon_media;
proxy_cache_valid 200 48h;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_lock on;

expires 1y;
add_header Cache-Control public;
add_header 'Access-Control-Allow-Origin' '*';
add_header X-Cache-Status $upstream_cache_status;
}
}