如何使用Nginx Web服务器覆盖内容类型
时间:2020-01-09 10:39:32 来源:igfitidea点击:
我配置了Nginx服务器。
但是,它发送了错误的内容类型。
如何强制Nginx发送特定的Content-Type:text/xml; charset = UTF-8
。
如何配置Nginx覆盖给定URL位置的内容类型?
简介MIME是多用途Internet邮件扩展(MIME)的首字母缩写。
它是指示文档,文件或字节分类的性质和格式的标准。
所有的Web浏览器都使用MIME类型来确定如何处理URL。
因此,Nginx在响应的Content-Type标头中发送正确的MIME类型至关重要。
如何查看Content-Type标头
使用以下curl命令:
curl -I url curl -I curl -I https://www.theitroad.local/media/new/category/old/nginx.gif
输出示例:
HTTP/2 200 date: Mon, 21 Jan 2019 12:07:22 GMT content-type: image/gif content-length: 377 cache-control: max-age=315360000 ... .
如何在Nginx中找出默认的地雷类型
在nginx配置目录中查找名为mime.types的配置文件:
# find /etc/nginx -name mime.types
使用cat命令或vi命令查看mime.types文件:
vi /etc/nginx/mime.types
用Nginx Web服务器覆盖内容类型
说当我请求atom.xml文件时,有
content-type: text/xml
我希望它是如下正确的一种:
Content-Type: content-type: text/html; charset=UTF-8
同样,我使用curl命令:
curl -I https://www.theitroad.local/atom/atom.xml
要解决此问题,请更新您的mime.types文件:
# vi /etc/nginx/mime.types
并确保存在以下配置:
application/atom+xml atom;
保存并关闭文件。
重新加载/重启Nginx服务。
例如,GNU/Linux用户可以运行:
# systemctl reload nginx
如何强制Nginx发送特定的Content-Type
另一种选择是将以下内容直接添加到配置文件中:
types { application/atom+xml atom xml; }
Nginx覆盖URL的内容类型
对于给定的URL模式,也可以覆盖内容类型。
例如,我编辑了/etc/nginx/domains/theitroad.local/default.conf并在服务器上下文中添加了以下内容:
### force utf-8 and content type, good bots for SEO ## location = /atom/atom.xml { ## override content-type ## types { } default_type "application/atom+xml; charset=utf-8"; ## override header (more like send custom header using nginx) # add_header x-robots-tag "noindex, follow"; }
保存并关闭文件。
重新启动或重新加载nginx服务器:
# service nginx reload
测试一下:
curl -I https://www.theitroad.local/atom/atom.xml