Рейтинг:0

nginx alis работает, но не возвращает правильный тип mime

флаг us

Я установил одно правило nginx

    расположение ~ /(карта сайта.*) {
      псевдоним /var/www/html/sitemaps/$1;
    }

Это хорошо работает для случаев, которые мне нужны, например,

  1. https://example.com/sitemap-1.xml
  2. возвращает файл /var/www/html/sitemaps/sitemap-1.xml

Моя проблема в том, что тип содержимого заголовков ответов тип содержимого: текстовый/обычный и не правильно для файла xml

Есть ли способ для nginx автоматически понять тип контента и вернуть правильный заголовок?

Richard Smith avatar
флаг jp
Большинство конфигураций Nginx используют «include mime.types» для сопоставления расширений файлов с типом MIME. Это должно быть в пределах области видимости (т. е. в родительском блоке этого блока «местоположение»). Используйте `nginx -T` (верхний регистр `T`), чтобы просмотреть всю конфигурацию всех включенных файлов и убедиться, что типы MIME загружаются и находятся в области действия.
флаг us
Спасибо, я проверил, и в моем nginx.conf нет совпадений для поиска `mime`. Могу ли я использовать `include mime.types` внутри моего блока местоположения `location ~ /(sitemap.*) { или` ДОЛЖЕН находиться на родительском уровне. Я хочу использовать директивы только тогда, когда это необходимо, чтобы избежать других вещей, которые могут плохо себя вести/нарушать.
флаг us
Итак, мой вопрос: может ли быть проблема с производительностью или проблема с другими местоположениями, если я включу mime.types на уровне сервера? Я хочу, чтобы MIME-типы использовались только для карт сайта местоположения, которые я разместил здесь, все другие местоположения (которых много) работают нормально и не хотят никакого влияния на производительность или что-то еще
флаг us
Я добавил `include mime.types` сразу после `http {`, как вы предложили, и после перезапуска nginx работает нормально. Мне все еще любопытно узнать выше вопросы, может ли это повлиять на что-то еще. Спасибо
Richard Smith avatar
флаг jp
Файл `mime.types` просто содержит [директиву `types`](http://nginx.org/en/docs/http/ngx_http_core_module.html#types) и может быть вставлен в `http`, `server` или блок «местоположение». Обычно общие директивы размещаются как можно выше, чтобы избежать дублирования, но это, конечно, не обязательно, и включение их в одно «местоположение» вполне допустимо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.