阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

修改Nginx配置返回指定content-type的方法详解

40次阅读
没有评论

共计 1193 个字符,预计需要花费 3 分钟才能阅读完成。

导读 nginx 作为一个 http 服务器, 在功能实现方面和性能方面都表现的非常优越, 下面这篇文章主要给大家介绍了关于修改 Nginx 配置返回指定 content-type 的相关资料, 需要的朋友可以参考下
一、我们遇到了什么问题?

今天前端的同学向我请教了一个 Nginx 服务配置的问题。我作为组里的底层开发,当然是对此类问题还是有信心的。因为我私下里对 Nginx 也是学习了一点,再不济通过丰富的 google 经验,解决此类配置问题也是不在话下的 O(∩_∩)O。但是问题并没有我想象的那么简单,花费了我不少时间 (╯□╰)。不多废话了,直接上需求。

Nginx 配置中一般根据 conf/mime.types 文件中配置来根据文件扩展名(文件扩展名对大小写不敏感)指定响应头中的 content-type 字段。mime.types 文件中主要使用了 types 配置,如下面配置就表明 *.css 文件的响应头中 conntent-type: text/css

types {text/css                                         css;}

但是现在我们不想使用默认配置中的 types 规则,需要指定 css 文件返回特定的 conntent-type 字段(比如加入指定编码参数 conntent-type: text/css; charset:utf-8),这时候应该如何配置呢?

二、解决方法

走过的弯路(想直接看答案的同学可以跳过):

  • 使用 add_header 指令,此时添加了 2 行 conntent-type 配置
  • 搜索修改 HTTP 响应头,需要添加 headers-more-nginx-module
  • 最后还是通过 Nginx 官方文档找到了好的解决方案(http://nginx.org/en/docs/http/ngx_http_core_module.html#types)

    要指定某个 location 块对所有的请求返回相同的 MIME 类型 ”application/octet-stream”,以下配置可以被使用:

    location /download/ {types        {}
        default_type application/octet-stream;
    }

    简要分析以下以上两行指令做了什么,第一行指令设置 types 配置为空(相当于取消了默认的 types 配置),第二行指令就简单了指定了 default_type。有了以上 2 行配置,那么我们就可以使用 location 块的正则匹配功能指定 css 文件返回指定 content-type 了。

    location ~ .*\.css$ {types {} default_type 'text/css; charset:utf-8';
    }

    怎么样,是不是看起来很简单?但是我就是没有在中文互联网上搜索到有用的答案(也有可能是我搜索的关键字不对),所以在此记录一下,希望对大家有帮助。

    阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

    腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

    代金券:在阿里云专用满减优惠券

    正文完
    星哥说事-微信公众号
    post-qrcode
     0
    星锅
    版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计1193字。
    转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
    【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
    阿里云-最新活动爆款每日限量供应
    评论(没有评论)
    验证码
    【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中