Веб-сервер nginx с местоположением regex и псевдонимом и расширением xls

У меня есть конфигурация nginx что-то вроде этого,

server {
    server_name my.domain.com;
    listen 80;
    root /path/to/http/root;
    include /path/to/proxy.common.conf;

    location ~ ^/foo-(.+)$ {
        alias /path/to/static/file/$1;
    }
    location / {
        try_files $uri $uri/ =404;
        proxy_pass http://127.0.0.1:8000/;
    }
}

я не могу получить доступ к файлам с местоположением /foo-something.xls, он всегда возвращает 404 не найден...

Я также пытался с.xlsx,.doc и.docx, но он также показывает, не найден...

если я получаю доступ к файлу, как.js, .css, .png, .xls1, .doc1 и т. д., он ведет себя нормально...

журнал ошибок показывает местоположение с регулярным выражением не совпадает, и попытался посмотреть в корневом расположении...

я также проверил местоположение с

location = /foo-test1.xls
location ^~ /foo-test2.xls

и псевдоним файла, и он возвращает содержимое файла...

я что-то упустил с моей конфигурацией?

Я только что нашел эту проблему при разработке модуля генератора отчетов в рамках моей компании...

я также пытался читать как в исходном коде nginx, так и в pcre, но не могу найти ни одной строки, связанной с этими расширениями...

1 ответ

Решение

Я нашел, что вызывает путаницу с пути...

я пропустил при проверке на proxy.common.conf...

после перепроверки я обнаружил, что есть место для проверки файлов с таким расширением с помощью regex...

вот почему регулярное выражение прекращает поиск после нахождения подходящего местоположения...

после перекрестной проверки с кем-то, кто настраивал nginx прежде, местоположение имеет какое-то отношение к нашей предыдущей структуре...

Спасибо за вашу поддержку...

Другие вопросы по тегам