2014-01-14 5 views
2

Есть ли способ обслуживать статические файлы только по некоторому пути URL? Например, следующий шаблон URL http://host/static/*.png имеет /static/ подстроку (путь), а Nginx будет обслуживать любую статику оттуда.Nginx: обслуживание статических файлов по URL-адресу

В документации веб-сервера я нашел пример:

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js)$ { ... 

и определили мой Nginx конфигурации так:

location/{ 
     try_files $uri $uri/ /index.html; 
    } 

    location /apib { 
     #some proxy_pass 
    } 

    location /apim { 
     #some proxy_pass 
    } 

    location /api { 
     #some proxy_pass 
    } 

Я пытаюсь добавить дополнительные location для */static/*.* с корневого каталога /var/www/some_statics.

ответ

3
location ~* ^/static/.+\.(png|whatever-else)$ { 
    alias /var/www/some_static; 
    expires 24h; 
} 
location/{ 
    # regular rules 
} 

Рука написана, может содержать ошибки.

Если вы хотите распространять правила, соответствующие anything/something/static/*.png, просто удалите ^ в patten.

+0

Nginx отправляет индексную страницу (root) из раздела сервера в config. – akrisanov

+0

@akrisanov Правильно. Они наследуются от конфигурации верхнего уровня, если не указано «root» или «alias» внутри блока. – msg7086

+0

http://d.pr/i/ViNT Я имею в виду, что ваше решение не работает. Моя полная конфигурация сейчас: https://gist.github.com/akrisanov/8413535 – akrisanov

Смежные вопросы