Задать вопрос
Ответы пользователя по тегу Nginx
  • Как в Nginx добавить заголовки в определённом location (для ответа API)?

    ptchol
    @ptchol
    Linux system administrator
    Вероятно в location /api/v1/ у вас прописано что то вроде
    if (!-e $request_filename) {
    rewrite ^.*$ /index.php last;
    }

    Поэтому запрос и уходит в location ~ "^(.+\.php)($|/)"
    Если я правильно понимаю задачу, то вам нужно для ответов бэкенда с content-type json / xml проставлять соответсвующий хедер.
    Здесь может помочь проверка хедера Content-type в ответе сервера.
    Получить его можно через переменные upstream модуля: $upstream_http_$HEADER. Тоесть в вашем случае это будет выглядеть как $upstream_http_content_type.
    А далее если вам нужно кастомное значение загловка для каждого типа контента, применить map, как то так:
    map $upstream_http_content_type $type {
    default "custom_header_default";
    "application/json" "custom_header_json";
    "text/xml" "custom_header_xml";
    }


    Сам такое ни разу не делал, поэтому отвечаю только "теоретически", как это может работать.
    Ответ написан
  • Как в nginx настроить изменение uri?

    ptchol
    @ptchol
    Linux system administrator
    Можно в локейшене изобразить такой ад:
    rewrite ^/([^/]*)/([^/]*)/(.+\.(js|css|png|jpg|jpeg|gif|ico|html))$ /$1/$3 break;

    Либо если количество "вылавливаемых" директорий конечно то:
    rewrite ^/(img|article)/([^/]*)/(.+\.(js|css|png|jpg|jpeg|gif|ico|html))$ /$1/$3 break;
    Ответ написан
    Комментировать