mirror of
https://github.com/discourse/discourse.git
synced 2026-08-12 05:55:39 -05:00
proper content-disposition header when downloading attachments
This commit is contained in:
+37
-27
@@ -22,50 +22,60 @@ server {
|
||||
sendfile on;
|
||||
|
||||
keepalive_timeout 65;
|
||||
|
||||
# maximum file upload size (keep up to date when changing the corresponding site setting)
|
||||
client_max_body_size 2m;
|
||||
|
||||
# path to discourse's public directory
|
||||
set $public /var/www/discourse/public;
|
||||
|
||||
location / {
|
||||
root /var/www/discourse/public;
|
||||
root $public;
|
||||
|
||||
## optional upload anti-hotlinking rules
|
||||
#location ~ ^/uploads/ {
|
||||
# valid_referers none blocked mysite.com *.mysite.com;
|
||||
# if ($invalid_referer) {
|
||||
# return 403;
|
||||
# }
|
||||
#}
|
||||
|
||||
## [LEGACY] this is deprecated, leaving it there for a small transition period
|
||||
location ~ ^/t\/[0-9]+\/[0-9]+\/avatar {
|
||||
expires 1d;
|
||||
add_header Cache-Control public;
|
||||
add_header ETag "";
|
||||
}
|
||||
|
||||
location ~ ^/(assets|uploads)/ {
|
||||
location ~ ^/assets/ {
|
||||
expires 1y;
|
||||
add_header Cache-Control public;
|
||||
add_header ETag "";
|
||||
break;
|
||||
}
|
||||
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Host $http_host;
|
||||
location ~ ^/uploads/ {
|
||||
expires 1y;
|
||||
add_header Cache-Control public;
|
||||
add_header ETag "";
|
||||
|
||||
## optional upload anti-hotlinking rules
|
||||
#valid_referers none blocked mysite.com *.mysite.com;
|
||||
#if ($invalid_referer) {
|
||||
# return 403;
|
||||
#}
|
||||
|
||||
# If the file exists as a static file serve it directly without
|
||||
# running all the other rewrite tests on it
|
||||
if (-f $request_filename) {
|
||||
break;
|
||||
}
|
||||
# let NGINX serve images
|
||||
location ~* \.(gif|png|jpg|jpeg|bmp|tif|tiff)$ { try_files $uri =404; }
|
||||
location ~ /_optimized/ { try_files $uri =404; }
|
||||
|
||||
if (!-f $request_filename) {
|
||||
# attachments must go through the rails application to get the right content-disposition header
|
||||
proxy_set_header X-Sendfile-Type X-Accel-Redirect;
|
||||
proxy_set_header X-Accel-Mapping $public/=/downloads/;
|
||||
proxy_pass http://discourse;
|
||||
break;
|
||||
}
|
||||
|
||||
try_files $uri @discourse;
|
||||
}
|
||||
|
||||
location /downloads/ {
|
||||
internal;
|
||||
alias $public/;
|
||||
}
|
||||
|
||||
location @discourse {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Host $http_host;
|
||||
|
||||
proxy_pass http://discourse;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user