Странное поведение nginx

12
S
На сайте с 25.12.2003
Offline
92
1785

Столкнулся на одном из серверов со странным поведением nginx. При попытке зайти на страницу мы получает содержимое каталога, т.е. видим скрипты в директории, структуру папок и т.д или получаем 403. По папкам ходить при этом нельзя, не пускает. А вот обратиться к какому-то конкретному скрипту – можно, без просмотра содержимого файла — жмякая по index.php откроется сайт.

По времени возникновения и сайтам – рандомно, но не чаще раза в сутки-пять. Лечится удалением кэша и перезагрузкой страницы. В логах ничего интересного, никаких специфических ошибок. На других машинах ничего подобного нет, конфиги схожи. Ранее тоже не сталкивался с таким поведением. При обращении к Apache на прямую ничего такого нет, сайт открывается как нужно.

Поиск пока ничего толкового не дал.

Any ideas?

Немного из конфигурационных файлов:

proxy_cache_path /var/tmp/domain levels=1:2 keys_zone=domain:32m inactive=7d;

Основной локейшен:

location / {

proxy_cache domain;

proxy_cache_key "$request_method|$is_args|$host|$request_uri";

proxy_hide_header “Set-Cookie”;

proxy_ignore_headers “Cache-Control” “Expires”;

proxy_cache_valid 200 302 304 10m;

proxy_cache_valid 301 1h;

proxy_cache_valid 503 1m;

proxy_cache_valid any 5m;

proxy_cache_use_stale http_502 http_503 http_504;

proxy_pass domain-ip:8080;

proxy_redirect domain.ru: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; }

Параметры сервера: debian 5, nginx 0.86->1.02 (версию менял, грабли остались), apache2.2+mod_php, сайт на Joomla (камнями не бейте, так уж вышло)

PS: Подозреваю, что дело в каком-то некорректном обновлении кэша, но как доказать или исправить — не ясно. Пробую менять keys_zone в большую сторону и inactive в меньшую. Пока непонятно.

Andreyka
На сайте с 19.02.2005
Offline
822
#1

Апач шалит

Не стоит плодить сущности без необходимости
S
На сайте с 25.12.2003
Offline
92
#2
Andreyka:
Апач шалит

Логично, конечно. Только вот в логах пока не вижу намеков. 😕

Andreyka
На сайте с 19.02.2005
Offline
822
#3

А как он тебе должен в логи писать? :)

S
На сайте с 25.12.2003
Offline
92
#4
Andreyka:
А как он тебе должен в логи писать? :)

Например -> Ups, i did fail again :)

Т.е. желательно либо уходить от апача, как и планировалось, или же: 1) чистить кэш; 2) дергать кэш почаще.

Спасибо.

D
На сайте с 05.06.2007
Offline
155
#5

Индекс файлы то хоть прописаны в nginx/apache? странно у вас как то...

Написал не мало шедевров ;)
S
На сайте с 25.12.2003
Offline
92
#6
Dimanych:
Индекс файлы то хоть прописаны в nginx/apache? странно у вас как то...

Да, прописаны.

TA
На сайте с 12.06.2009
Offline
116
TiA
#7

skurudo, то есть у вас при обращении http://url-сайта:8080 все хорошо, а при обращении на 80 порт такая фигня?

Попробуйте для проверки такой конфиг:

proxy_pass http://127.0.0.1:8080;

proxy_redirect http://127.0.0.1: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;

Профессиональная верстка и разработка сайтов на WordPress (http://www.maultalk.com/topic139110s0.html)
S
На сайте с 25.12.2003
Offline
92
#8
TiA:
skurudo, то есть у вас при обращении http://url-сайта:8080 все хорошо, а при обращении на 80 порт такая фигня?

Да, совершенно верно. Об этом сказано в начальном сообщении.

TiA:
Попробуйте для проверки такой конфиг:

Вы просто предлагаете избавиться от кэшей nginx'a.

Я здесь попробовал все-таки посмотреть в сторону апача, как советовал Andreyka - на предмет отключения неиспользуемых модулей, добавление памяти eAccelerator'у под кэш. После этих нехитрых манипуляций - полет пока что стабильный.

Итого:

proxy_cache_path /var/tmp/domain levels=1:2 keys_zone=domain:64m inactive=3d;

Остальной локейшен не трогался.

ower_xz
На сайте с 20.11.2007
Offline
45
#9

А права на папки www и доменов у вас какие? Если 751, то ничего вообще видно быть не должно. Должна отдаваться ошибка 403.

И папку кэша попробуйте разместить в другом месте. У меня вот так сделано..

proxy_cache_path /var/cache/nginx/cache levels= keys_zone=one:50m max_size=1024m;

А в секции сервер

server {

listen ....................;

server_name domain.com www.domain.com;

proxy_temp_path /var/cache/nginx/domain.com;

S
На сайте с 25.12.2003
Offline
92
#10
ower_xz:
А права на папки www и доменов у вас какие? Если 751, то ничего вообще видно быть не должно. Должна отдаваться ошибка 403.

Извините, вы не читали первоначальное сообщение.

С правами все в порядке.

ower_xz:
И папку кэша попробуйте разместить в другом месте. У меня вот так сделано..
proxy_cache_path /var/cache/nginx/cache levels= keys_zone=one:50m max_size=1024m;
А в секции сервер
server {
listen ....................;
server_name domain.com www.domain.com;
proxy_temp_path /var/cache/nginx/domain.com;

Не совсем понимаю, на что перемена мест залегания кэша может влиять?

Поясните причины использования proxy_temp_path в данном случае?

12

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