LINUX.ORG.RU
ФорумAdmin

Помогите разобраться с раздачей статики в nginx


0

1

Добрый день. Проблема в следующем. На сервере (Debian Squeeze) установлен nginx 0.8.54 и apache 2.2.9

в конфиге nginx есть правило

location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ { root /path/to/site/home/dir; access_log /path/to/access.log; }

И файлы с такими расширениями появляются как в логах nginx'а, так и в логах apache. и статистика сервера apache тоже показывает, что апач отдает картинки (а по идее, не должен). Подскажите, в чем может быть проблема?


>Подскажите, в чем может быть проблема?
1) В том, что ты даже не думал открыть документацию.
2) В том, что ты хочешь, чтобы люди с форума думали за тебя.
3) В том, что ты хочешь получать зарплату за чужой счет.

И да, хочешь, чтобы помогали - клади сюда весь конфиг без комментариев.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Документацию смотрел.

Вот полный конфиг nginx'а

user www-data;
worker_processes 1;

error_log /path/to/error.log;
pid /path/to/nginx.pid;

events {
worker_connections 1024;
}

http {
include /path/to/mime.types;
default_type application/octet-stream;

access_log /path/to/access.log;

sendfile on;

keepalive_timeout 65;
tcp_nodelay on;

proxy_send_timeout 90;
proxy_read_timeout 90;

gzip on;
gzip_types text/plain text/html text/xml application/xml application/x-javascript application/javascript text/javascript text/css application/xhtml+xml image/svg+xml application/rss+xml application/atom_xml application/x-httpd-php application/x-httpd-fastphp application/x-httpd-eruby;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
client_max_body_size 800m;

server {
listen 111.222.333.444:80;
server_name some_site;

error_page 404 = @fallback;
location / {
proxy_pass http://111.222.333.444:8080;
proxy_redirect http://some_site:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /path/to/site/home/dir;
access_log /path/to/access.log ;
}
location @fallback {
proxy_pass http://111.222.333.444:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}

}

evsan ()

Подскажите, в чем может быть проблема?

астральная сущность в виде гномика подсказывает мне, что надо вот так:

location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|js|swf|avi|mp3|flv|mpeg)$ {

Komintern ★★★★★ ()
Ответ на: комментарий от Komintern

Спасибо за совет. Но после таких изменений апач по прежнему обрабатывает статику... (по крайней мере по выводу статистики апача mod_status)

А чем мой варинт не подходит? nginx не понимает "?"? Насколько я понимаю, у меня просто больше расширений отдается напрямую минуя апач.

evsan ()
Ответ на: комментарий от evsan

> у меня просто больше расширений отдается напрямую минуя апач.

у тебя регексп другой. если с моим вариантом у тебя апач по прежнему обрабатывает статику, то скорее всего запросы идут не на some site, а на ip-адрес допустим, а nginx их проксирует.
или апач слушает внешний адрес, но на другом порту, и туда кто-то обращается.

Komintern ★★★★★ ()
Ответ на: комментарий от evsan

На всякий случай - /path/to/access.log у nginx и apache не один и тот же?

vladislav ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.