我上传各种类型的内容(gif,jpeg,png,css,pdf)到亚马逊s3。然后我将Nginx放在S3前面,这样我就可以重写urls,并让azure cdn拉取它们。
我遇到的问题是,有时在上传文件(各种方式,但主要是javascript http上传)时,我们经常忽略放置内容类型。我正在尝试弄清楚是否值得让nginx通过一系列的位置和if语句来纠正这些头文件,或者我是否应该一起删除所有内容类型的头文件。
例如:当我在Chrome web检查器中查看此url时,我没有看到返回的内容类型标题。http://wiki.nginx.org/local/nginx-logo.png。
我们是不是终于到了浏览器可以自己决定内容类型的地步了?
添加内容类型标头是否有任何特定的性能优势?
根据文件扩展名设置内容类型的nginx规则是什么?例如,url是否为mydomain.com/s3reverseproxy/uploads/test.css?querystring=random以正确设置其内容类型?目前我正在使用这个,但担心很多if语句可能是一个坏主意:
location ~* ^/s3/(.*) {
# Headers based on file extensions
more_clear_headers 'Content-Type';
if ($request_uri ~* .*svg.*) {
more_set_headers "Content-Type:image/svg+xml";
more_set_headers "X-Content-Type:OverRidden";
}
set $s3_bucket 'mybucket.s3.amazonaws.com';
set $url_full '$1';
# HEADERS
more_set_headers "Server: PROXYS3";
add_header Cache-Control "no-transform,public,max-age=36720000";
etag on;
expires 425d;
.....谢谢!
发布于 2014-04-25 08:19:22
所有这些类型通常都存储在一个名为mime.types的文件中,nginx.conf应该将它们包含在http上下文中,而不是执行这些扩展条件,请检查mime.types文件,并为每个扩展名(如果不存在)及其表示的类型添加一条记录。
如果它们都已经包含在内,那么请确保您的nginx.conf包含该文件。
https://stackoverflow.com/questions/23281085
复制相似问题