修改Nginx配置返回指定content-type的方法
一、我們遇到了什么問題?
今天前端的同學(xué)向我請教了一個Nginx服務(wù)配置的問題。我作為組里的底層開發(fā),當(dāng)然是對此類問題還是有信心的??。因為我私下里對Nginx也是學(xué)習(xí)了一點(diǎn),再不濟(jì)通過豐富的google經(jīng)驗,解決此類配置問題也是不在話下的O(∩_∩)O。但是問題并沒有我想象的那么簡單,花費(fèi)了我不少時間( ╯□╰ )。不多廢話了,直接上需求。
Nginx配置中一般根據(jù)conf/mime.types文件中配置來根據(jù)文件擴(kuò)展名(文件擴(kuò)展名對大小寫不敏感)指定響應(yīng)頭中的content-type字段。mime.types文件中主要使用了types配置,如下面配置就表明*.css文件的響應(yīng)頭中conntent-type: text/css
types { text/css css; }
但是現(xiàn)在我們不想使用默認(rèn)配置中的types規(guī)則,需要指定css文件返回特定的conntent-type字段(比如加入指定編碼參數(shù)conntent-type: text/css; charset:utf-8),這時候應(yīng)該如何配置呢?
二、解決方法
走過的彎路(想直接看答案的同學(xué)可以跳過):
- 使用add_header指令,此時添加了2行conntent-type配置
- 搜索修改HTTP響應(yīng)頭,需要添加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; }
簡要分析以下以上兩行指令做了什么,第一行指令設(shè)置types配置為空(相當(dāng)于取消了默認(rèn)的types配置),第二行指令就簡單了指定了default_type。有了以上2行配置,那么我們就可以使用location塊的正則匹配功能指定css文件返回指定content-type了。
location ~ .*\.css$ { types { } default_type 'text/css; charset:utf-8'; }
怎么樣,是不是看起來很簡單?但是我就是沒有在中文互聯(lián)網(wǎng)上搜索到有用的答案(也有可能是我搜索的關(guān)鍵字不對),所以在此記錄一下,希望對大家有幫助。
總結(jié)
到此這篇關(guān)于修改Nginx配置返回指定content-type的文章就介紹到這了,更多相關(guān)Nginx返回指定content-type內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx通過用戶IP獲取所在國家及地理位置的實(shí)現(xiàn)方法
Nginx是一款高性能、輕量級的Web服務(wù)器和反向代理服務(wù)器,今天講解Nginx十分常用的功能之一,通過IP獲取用戶所在的國家,一般廣泛應(yīng)用在各類需要定位的網(wǎng)站上面,來定位用戶首次訪問的國家,通過IP解析庫GeoLite2-Country來實(shí)現(xiàn)功能,需要的朋友可以參考下2023-10-10