Râu Cao 087616b6b6
Set max size for external S3 upload requests
Fix uploads failing when exceeding the default nginx limit
2023-11-08 21:44:49 +01:00

52 lines
1.4 KiB
Plaintext

upstream garage_s3 {
server 127.0.0.1:3900;
}
server {
listen <%= "#{node[:openresty][:listen_ip]}:" if node[:openresty][:listen_ip] %>443 ssl http2;
listen [::]:443 http2 ssl;
ssl_certificate <%= @ssl_cert %>;
ssl_certificate_key <%= @ssl_key %>;
server_name <%= @server_name %>;
access_log <%= node[:openresty][:log_dir] %>/<%= @domain_name %>.access.log json;
error_log <%= node[:openresty][:log_dir] %>/<%= @domain_name %>.error.log warn;
error_page 401 403 404 500 /__empty-page.html;
client_max_body_size <%= @max_part_upload_size_mb %>m;
location = /__empty-page.html {
internal;
return 200 "";
}
location / {
if ($request_method = OPTIONS) {
add_header Content-Length 0;
add_header Content-Type text/plain;
return 200;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_request_buffering off;
proxy_max_temp_file_size 0;
proxy_pass http://garage_s3;
<% if @xmpp_upload_bucket %>
# Some XMPP clients (e.g. Beagle, Siskin, Snikket, Monal) require a 201 CREATED
# for PUT requests to be considered successful
header_filter_by_lua_block {
if ngx.var.http_host == "<%= @xmpp_upload_bucket %>.<%= @domain_name %>" and
ngx.req.get_method() == "PUT" and ngx.status == ngx.HTTP_OK then
ngx.status = ngx.HTTP_CREATED
end
}
<% end %>
}
}