- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Столкнулся на одном из серверов со странным поведением 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 в меньшую. Пока непонятно.
Апач шалит
Апач шалит
Логично, конечно. Только вот в логах пока не вижу намеков. 😕
А как он тебе должен в логи писать? :)
А как он тебе должен в логи писать? :)
Например -> Ups, i did fail again :)
Т.е. желательно либо уходить от апача, как и планировалось, или же: 1) чистить кэш; 2) дергать кэш почаще.
Спасибо.
Индекс файлы то хоть прописаны в nginx/apache? странно у вас как то...
Индекс файлы то хоть прописаны в nginx/apache? странно у вас как то...
Да, прописаны.
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;
skurudo, то есть у вас при обращении http://url-сайта:8080 все хорошо, а при обращении на 80 порт такая фигня?
Да, совершенно верно. Об этом сказано в начальном сообщении.
Попробуйте для проверки такой конфиг:
Вы просто предлагаете избавиться от кэшей nginx'a.
Я здесь попробовал все-таки посмотреть в сторону апача, как советовал Andreyka - на предмет отключения неиспользуемых модулей, добавление памяти eAccelerator'у под кэш. После этих нехитрых манипуляций - полет пока что стабильный.
Итого:
Остальной локейшен не трогался.
А права на папки 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;
А права на папки 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;
Не совсем понимаю, на что перемена мест залегания кэша может влиять?
Поясните причины использования proxy_temp_path в данном случае?