- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Столкнулся на одном из серверов со странным поведением 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 в данном случае?