Как переопределить тип контента на веб-сервере Nginx

by itisgood

Я настроил сервер Nginx. Тем не менее, он отправляет неправильный тип контента.

Мне нужно заставить Nginx отправлять определенные “Content-Type: text/xml; charset=UTF-8“ .

Как настроить Nginx для переопределения типа контента для заданного местоположения URL?

Введение – MIME является аббревиатурой от многоцелевых расширений почты в Интернете (MIME).

Это стандарт, который указывает характер и формат документа, файла или ассортимента байтов.

Все веб-браузеры используют тип MIME, чтобы определить, как обрабатывать URL.

Следовательно, важно, чтобы Nginx отправлял правильный MIME-тип в заголовке Content-Type ответа.

Как увидеть заголовок Content-Type

Используйте следующую команду curl:

curl -I url
curl -I curl -I https://www.cyberciti.biz/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
...
.

content-type: image/gif  указывает, что изображение и подтип является изображением gif.

Как узнать тип MIME по умолчанию в Nginx

Найдите файл конфигурации с именем mime.types внутри каталога конфигурации nginx:

# find /etc/nginx -name mime.types

Используйте команду cat или команду vi для просмотра файла mime.types:

vi /etc/nginx/mime.types

Переопределить тип контента на веб-сервере Nginx

Скажем, когда я запрашиваю файл atom.xml, он:

content-type: text/xml

И я хочу, чтобы это было следующим образом:

Content-Type: content-type: text/html; charset=UTF-8

Я снова использовал команду curl:

curl -I https://www.cyberciti.biz/atom/atom.xml

Вывод:

content-type: text/xml

Чтобы исправить это, обновите файл mime.types:

# vi /etc/nginx/mime.types

И убедитесь, что существует следующий конфиг:

application/atom+xml atom;

Сохраните и закройте файл.

Перезагрузите / перезапустите сервис Nginx.

Например, пользователь GNU / Linux может запустить:

# systemctl reload nginx

Nginx переопределяет тип контента для URL

Также возможно переопределить тип контента для данного шаблона URL.

Например, я отредактировал /etc/nginx/domains/cyberciti.biz/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.cyberciti.biz/atom/atom.xml

You may also like

Leave a Comment