Nginx 502 Bad Gateway S3 Upload

November 27, 2016 543 views
Nginx Ubuntu 16.04

I am running a Phoenix (Elixir) application and using arc and ex_aws to upload images to S3. Arc will stream the upload to S3. However, a PATCH with the uploaded base64 image immediately returns a 502.

So one theory is nginx is getting confused b/c it is streaming the upload but receives a response early and nginx thinks something went wrong. The reason why I believe Nginx is causing this is b/c uploading locally on my Mac works perfectly.

Here is the nginx configuration:

Any thoughts would be greatly appreciated!

1 Answer

You may need to adjust the proxy buffer size to prevent 502s when uploading via the nginx proxy. This page covers some solutions to this issue. Having something like the following in your configuration should help:

# define buffers, necessary for proper communication to prevent 502s
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
Have another answer? Share your knowledge.