Сегодня читал мануал и обнаружил интересную конструкцию, которая Вам поможет:
location /images/ { try_files $uri /images/default.gif; } location = /images/default.gif { expires 30s; } Если нужный файл внутри /images/ не найден - загружается /images/default.gif; Более подробное описание: http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files 29 октября 2013 г., 0:34 пользователь Maxim Dounin <mdou...@mdounin.ru>написал: > Hello! > > On Mon, Oct 28, 2013 at 05:58:26AM -0400, Vipper wrote: > > > Спасибо за пояснения. > > Сделал так: > > location ^~ /photos/ { > > error_page 404 /photos/no_photo.gif; > > log_not_found off; > > } > > > > location = /photos/no_photo.gif { > > expires max; > > } > > > > Если писать location /photos/ то не работает. > > > > Поясните мне пожалуйста последний момент. > > Почему при одном обращении к несуществующей картинке в access лог пишутся > > ДВЕ записи? Если разрешить error лог, то и туда тоже. > > Я понять этого не могу. При этом картинка подменяется как положено. > > Если в access log'е две записи - значит браузер сделал два > запроса. Почему так - отдельный вопрос, требующий разбирательств > в первую очередь с браузером. E.g. он мог сделать это, если > картинка используется на странице в двух местах, и из-за 404-го > кода ответа он пошёл на сервер ещё раз. Можно попробовать сказать > > error_page 404 = /photos/no_photo.gif; > > (доблен модификатор "="), тогда браузеру заглушка уйдёт с кодом > 200. Но это не то, чтобы очень правильный подход - лучше код > ошибки в подобных ситуациях по возможности сохранять, это делает > мир лучше. > > -- > Maxim Dounin > http://nginx.org/en/donation.html > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- AG
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru