Skip to content

Instantly share code, notes, and snippets.

@Sikandarkhan
Last active June 20, 2023 18:06
Show Gist options
  • Save Sikandarkhan/8e218ebcd4827e2ad5d66ad22145f83a to your computer and use it in GitHub Desktop.
Save Sikandarkhan/8e218ebcd4827e2ad5d66ad22145f83a to your computer and use it in GitHub Desktop.
NGINX with AWS S3 static web server
# Proxy configuration
proxy_http_version 1.1;
proxy_ignore_headers 'Set-Cookie';
proxy_buffering off;
proxy_intercept_errors on;
proxy_method GET;
proxy_set_header Host 'bucket.s3-website-sa-east-1.amazonaws.com';
proxy_set_header Authorization '';
proxy_hide_header x-amz-id-2;
proxy_hide_header x-amz-request-id;
proxy_hide_header Set-Cookie;
resolver 172.16.0.23 valid=300s;
resolver_timeout 5s;
# cache.appcache, your document html and data
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
proxy_pass http://bucket.s3-website-sa-east-1.amazonaws.com;
}
# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1M;
add_header Cache-Control "public";
proxy_pass http://bucket.s3-website-sa-east-1.amazonaws.com;
}
# CSS and Javascript
location ~* \.(?:css|js)$ {
expires 1y;
proxy_pass http://bucket.s3-website-sa-east-1.amazonaws.com;
}
# WebFonts
location ~* \.(?:ttf|ttc|otf|eot|woff|woff2)$ {
expires 1M;
proxy_pass http://bucket.s3-website-sa-east-1.amazonaws.com;
}
@Sikandarkhan
Copy link
Author

@Sikandarkhan
Copy link
Author

For Normal URLs - not S3

    #Proxy configuration 
proxy_http_version     1.1;
proxy_ignore_headers   'Set-Cookie';
proxy_buffering        off;
proxy_intercept_errors on;
proxy_method           GET;
proxy_set_header       Host 'http://abc.def.com';
proxy_set_header       Authorization '';
proxy_hide_header      Set-Cookie;
resolver               172.16.0.23 valid=300s;
resolver_timeout       5s;

# cache.appcache, your document html and data
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
	expires -1;
	proxy_pass http://abc.def.com;
}

# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
	expires 1M;
	add_header Cache-Control "public";
	proxy_pass http://abc.def.com;
}

# CSS and Javascript
location ~* \.(?:css|js)$ {
	expires 1y;
	proxy_pass http://abc.def.com;
}

# WebFonts
location ~* \.(?:ttf|ttc|otf|eot|woff|woff2)$ {
	expires    1M;
	proxy_pass http://abc.def.com;
}

@Sikandarkhan
Copy link
Author

I have recently worked on the s3 proxy pass for react /dist

set $bucket "www.monilink.co.s3-website-ap-southeast-1.amazonaws.com";
sendfile on;
location / {
resolver 8.8.8.8;
proxy_temp_path /tmp;
#proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Connection "";
proxy_set_header Authorization '';
proxy_set_header Host $bucket;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
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 Set-Cookie;
proxy_ignore_headers Set-Cookie;
proxy_intercept_errors on;
add_header Cache-Control max-age=31536000;
proxy_pass http://$bucket; # without trailing slash
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment