LINUX.ORG.RU
решено ФорумAdmin

Слишком много редиректов

 


0

1

Добрый вечер.

Воспользовался сервисом для проверки редиректов (http://webmasta.org/tools/urlredirectedl) сайтов у себя на сервере. Очень странный результат: 20 редиректов. Такого не должно быть! Причём, такой результат у всех сайтов на этом сервере. Стоит apache2 бэкэнд и nginx фронтэнд. Все редиректы 302. Не пойму почему... Вот часть конфигов nginx:

server {
        listen xx.xx.xx.xx:80;
        server_name example.ru;
        rewrite ^ http://www.example.ru$request_uri? permanent;
}

В конфиге апача(хотя, я не знаю можно ли в апаче...) и в .htaccess редиректы не прописаны...

Помогите, уже второй день голову ломаю, начальство сердится... Куда копать? Какие конфиги показать?

Зачем реврайты в nginx и наличие апача c .htaccess?

По теме, редиректы могут генериться и php (или что там у вас).

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

Зачем реврайты в nginx и наличие апача c .htaccess?

Редирект с «без www» на «с www». В .htaccess формируется путь к картинкам. Честно говоря, даже не знаю, зачем это сделал админ, который был до меня, но без этого не работает.

А куда перенаправления то?

Говорит, что на http://www.example.ru

Может это связано с тем, что на главной странице скрипты, которые находятся на других ресурсах и, каждый раз их подгружая, он перенаправляет и возвращает 302?

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

Да, показан. Все редиректы на тот же самый сайт.

Ну вот и думай почему так может быть, и чем отличается последний редирект после которого сайт открывается.

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

Ну после первого перенаправления нужно смотреть, что отвечает http://www.example.ru. Содержимое страницы (где там скрипты и картинки) webmasta не должна анализировать.

Как вам уже посоветовали, понимайте, почему редиректов только 20, а не бесконечный цикл. Смотрите логи, действительно ли там есть 20 запросов от webmasta. Страница http://www.example.ru статическая или динамическая? Если динамическая, то может там скрипт генерит эти 302, выставляя кукисы, а не http-сервер.

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

почему редиректов только 20, а не бесконечный цикл

У nginx есть внутреннее ограничение на 10 редиректов.

http://lxr.nginx.org/source/src/http/ngx_http_request.h#0012

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от mky

а у ТС сайт загружается.

Насколько я понял, ТС проверяет свой сайт каким-то сторонним сервисом. В заглавном сообщении нет информации о том, что сайт вообще работает. Возможно, только какой-то определённый URL вызывает бесконечные перенаправления, и тот сервис его нашёл.

i-rinat ★★★★★
()
Ответ на: комментарий от tetramin

Что это значит?

Для каждого запроса nginx заводит счётчик, который уменьшается на единицу каждый раз, когда происходит перенаправление. По достижении нуля запрос отбрасывается с сообщением об ошибке. Изначальное значение счётчика равно 10. Иначе бы nginx подвисал на таких запросах.

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

Сайт прекрасно загружается и работает! Но вот из индекса страницы пропали из-за ответа 302.

Действительно, я проверяю сайт сторонним сервисом и не одним.

Но, если сделать так:

wget -S -q -O /dev/null http://example.ru
  HTTP/1.1 301 Moved Permanently
  Server: nginx
  Date: Tue, 24 Jun 2014 07:12:52 GMT
  Content-Type: text/html
  Content-Length: 178
  Connection: keep-alive
  Location: http://www.example.ru/
  HTTP/1.1 200 OK
  Server: nginx
  Date: Tue, 24 Jun 2014 07:12:52 GMT
  Content-Type: text/html;charset=windows-1251
  Connection: close
  Vary: Accept-Encoding
  Pragma: no-cache
  Expires: Tue, 24 Jun 2014 10:12:52 GMT
  Cache-Control: public, must-revalidate, proxy-revalidate
  Set-Cookie: PHPSESSID=************************; path=/
  Last-Modified: Tue, 24 Jun 2014 07:12:52 GMT
  Vary: Accept-Encoding
то ответ вот такой...

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

Всё ясно! Проблема решена.

Админ, который работал до меня, защитил nginx от всего, чего только возможно, путём создания белого списка ботов, которые могут сканировать сервер. Проверку осуществил через установку куки. Всё заработало, когда убрал строку

testcookie on;
из секции «location /» конфига виртуального хоста.

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