Помогите разобраться с конфигом NGINX

M
На сайте с 02.01.2013
Offline
38
1160

Есть дефолтный конф, для отдачи статики/графики


location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root $root_path;
access_log /var/www/nginx-logs/xxxxxx isp;
access_log /var/www/httpd-logs/xxxxxx.net.access.log ;
error_page 404 = @fallback;
}

location @fallback {
proxy_pass http://xxx.xxx.xx.xxx:81;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}

Как я понимаю, если например nginx не находит картинку [404] он отдаёт запрос URL на @fallback - Apache

там у меня mod_revrite настроет и нринимая этот URL генерит картинку динамически и отдаёт в браузер(куда именно по схеме с nginx точно не знаю)

Тут появляется проблема. Лог /var/log/nginx/error.log - пишет каждое обращение по такой схеме, и хотя картинку скрипты отдали, в лог идёт запись

2013/03/01 12:12:43 [error] 6138#0: *619777 open() "/var/www/xxxx/data/www/xxxxxx.net/drgdhffjtyj/sfjsfjfjgkyukdyuk.jpg" failed (2: No such file or directory)

Как это можно побороть?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#1

log_not_found off;

хотя я бы для статики вообще логи бы отключил, зачем диск этим нагружать

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
P
На сайте с 16.03.2009
Offline
144
#2

Читать мануал rewrite_nginx и написать правило в конфиге nginx.

Или же проксировать все на апач, а он там уже разберется (htaccess ваши правила). Для этого выпилить

location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root $root_path;
access_log /var/www/nginx-logs/xxxxxx isp;
access_log /var/www/httpd-logs/xxxxxx.net.access.log ;
error_page 404 = @fallback;
}
K
На сайте с 01.03.2013
Offline
24
#3

Зачем вообще перенаправлять запрос на несуществующие файлы апачу?

Отдать сразу nginx ом 404 и все.

И нагрузки на сервер будет меньше.

M
На сайте с 02.01.2013
Offline
38
#4
kruzo:
Зачем вообще перенаправлять запрос на несуществующие файлы апачу?
Отдать сразу nginx ом 404 и все.

Файла по данному урл не существует, так как URL картинки используется как переменные для скрипта, который эту картинку и отдаёт.

Её как бы нет, но она вроде как и есть :)

poiuty:
Или же проксировать все на апач, а он там уже разберется (htaccess ваши правила). Для этого выпилить

Выпилить не проканает - это крайняя крайность .. а вот отключить лог для статики это уже ближе к сердцу. Оптимизайка, спасибо.

Может можно отключить логи не для всей статики?

---------- Добавлено 01.03.2013 в 22:57 ----------

правильно ли я сделал?


location ~* ^.+\.(jpg|jpeg|gif|png)$ {
root $root_path;
log_not_found off; #отключил логирование 404
access_log /var/www/nginx-logs/xxxxxx isp;
access_log /var/www/httpd-logs/xxxxxx.net.access.log ;
error_page 404 = @fallback;
}
location ~* ^.+\.(svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root $root_path;
access_log /var/www/nginx-logs/xxxxxx isp;
access_log /var/www/httpd-logs/xxxxxx.net.access.log ;
error_page 404 = @fallback;
}

такие два location прокатит? в первом отключил логи на 404

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий