Тогда встречный вопрос:
location ~* .(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
root /var/www/;
}
вот эта строчка для чего? и нужна ли она вообще?
Здесь описано, откуда брать файлы, оканчивающиеся на .jpg или .jpeg и т.д.
Данный блок нужен, если в конфигурации сервера написано, что все (location /) брать с апача, а файлы с этими расширениями (location ~* .(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$) брать из директории. Та конфигурация, что я показал постом выше, работает по-другому: что все (location /) брать из директории, а php файлы (location ~ .php$) и т.д. брать с апача. На самом деле не обязательно должны существовать php файлы физически, просто должны запрашиваться такие ресурсы, а апач сам выдаст то, что надо.
и еще, у меня несколько виртуальных хостов. данные параметры нужно выставлять каждому хосту?
Да, желательно. Это позволяет настраивать каждый хост по-своему. Но можно прописать общие настройки в каком-нибудь файле и инклудить для нужных хостов. Например, так инклудится файл с общими настройками проксирования:
include /etc/nginx/proxy.conf;
Пользователь решил продолжить мысль 10 Мая 2010, 02:43:12:
Забыл написать, что для редкоизменяемых файлов (location ~* .(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$) можно указать expires, т.е. время, в течении которого эти файлы не будут изменены. В основном браузеры их кэшируют и повторных запросов на них не делают.
location ~* .(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
root /var/www/;
expires 30d;
}