Настроили сервер Nginx. Тем не менее, он отправляет неправильный тип контента. Мне нужно заставить Nginx отправлять определенные «Content-Type: text / xml; кодировка = UTF-8“ . Как настроить Nginx для переопределения типа контента для заданного URL?
MIME является аббревиатурой от многоцелевых расширений почты в Интернете (MIME). Это стандарт, который указывает характер и формат документа, файла или байтов. Все веб-браузеры используют тип MIME, чтобы определить, как обрабатывать URL. Следовательно, важно, чтобы Nginx отправлял правильный тип MIME в заголовке Content-Type ответа.
Как увидеть заголовок Content-Type
Используйте следующую команду curl:
curl -I url curl -I curl -I https://itfb.com.ua/media/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
Тип содержимого: image/gif указывает, что изображение и подтип является изображением gif.
Как узнать mine types по умолчанию в Nginx
Найдите файл конфигурации с именем mime.types внутри каталога конфигурации nginx:
find /etc/nginx -name mime.types
Используйте команду cat или команду vi для просмотра файла mime.types:
vi /etc/nginx/mime.types
Переопределить тип контента Nginx
Скажем, когда я запрашиваю файл atom.xml, тип контента: text/xml
И я хочу, чтобы это было исправлено следующим образом:
Content-Type: content-type: text/html; charset=UTF-8
Я снова использую команду curl:
curl -I https://itfb.com.ua/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/itfb.com.ua/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://itfb.com.ua/atom/atom.xml
Заключение
На этой странице показано, как переопределить Content-Type по умолчанию в nginx.