Странная работа Apache

I
На сайте с 30.10.2011
Offline
15
787

Всем добрый день!

Какая-то хитрая проблема.

Есть у меня сайт на Wordpress (посещаемость порядка 10-15 тыс. человек в сутки). Назовем его site1.ru . Понадобилось перенести его на другой домен site2.ru.

Перенес его.

Ну то есть, сделал копию сайта на другом домене.

То есть, фактически есть (и совпадают) , например, страница site1.ru/page1 и site2.ru/page1

При этом фактически оба сайта - на одном же сервере лежат.

Поставил 301-й редирект. Обратившись к site1.ru/page1 - автоматически попадаешь на site2.ru/page1.

То есть, все запросы к site1.ru фактически обрабатывает сайт site2.ru.

Пока все понятно.

Но - после такого редиректа - количество процессов Apache вырастает до 300-350 (при стандартной посещаемости).

От этого все виснет и начинает страшно тормозить.

Если же редирект убрать (то есть, запросы к site1.ru будет только сам site1.ru обрабатывать) - количество процессов Apache - 10-15, при той же посещаемости.

Сервер тот же, все то же, а количество процессов кардинально отличается.

С чего начинать копать? Хотя бы в каком направлении может быть проблема?

Linux Debian

Server version: Apache/2.2.16 (Debian)

Server built: Nov 30 2012 08:58:38

M
На сайте с 16.09.2009
Offline
278
#1
instigatorseo:
Поставил 301-й редирект. Обратившись к site1.ru/page1 - автоматически попадаешь на site2.ru/page1.

То есть, все запросы к site1.ru фактически обрабатывает сайт site2.ru.

Пока все понятно.

С чего начинать копать? Хотя бы в каком направлении может быть проблема?

Ровно ничего не понятно. А начинать "копать" - с выяснения как именно организован ваш редирект. Может вы с директивами mod_rewrite такую свистопляску устроили...

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
I
На сайте с 30.10.2011
Offline
15
#2

Редирект устроен через .htaccess

Options +FollowSymLinks

RewriteEngine on

RewriteCond %{HTTP_HOST} ^site1\.ru*$ [NC]

RewriteRule ^(.*)$ http://site2.ru/$1 [R=301,L]

RedirectMatch 301 /(.*)$ http://site2.ru/$1

M
На сайте с 16.09.2009
Offline
278
#3

Здесь как минимум два набора директив для редиректа. Копипастили из разных хавту?

I
На сайте с 30.10.2011
Offline
15
#4
Поставил 301-й редирект. Обратившись к site1.ru/page1 - автоматически попадаешь на site2.ru/page1 .

То есть, все запросы к site1.ru фактически обрабатывает сайт site2.ru.

Имеется ввиду:

Если, например, в строке браузера набрать: site1.ru/page1 - тебя автоматически перебросит на site2.ru/page1 .

---------- Добавлено 14.12.2012 в 21:35 ----------

myhand:
Здесь как минимум два набора директив для редиректа. Копипастили из разных хавту?

Вот это - копипастилось из стандартного хауту

RewriteCond %{HTTP_HOST} ^site1\.ru*$ [NC]
RewriteRule ^(.*)$ http://site2.ru/$1 [R=301,L]

Это работает - но только для главной страницы сайта.

То есть, с http://site1.ru/ тебя перебросит на http://site2.ru/

Оказалось, что если обратиться к внутренней странице, например,

http://site1.ru/abc - тебя на http://site2.ru/abc не перебросит.

Поэтому для исправления этой ситуации - пришлось дописать вот так:

RedirectMatch 301 /(.*)$ http://site2.ru/$1

и все стало перебрасывать.

M
На сайте с 16.09.2009
Offline
278
#5
instigatorseo:
Это работает - но только для главной страницы сайта.

И вместо того, чтобы почитать документацию и разобраться - бездумно вставили еще один копипаст?

На "другом-то" хоть домене RedirectMatch точно нет?

I
На сайте с 30.10.2011
Offline
15
#6
myhand:
И вместо того, чтобы почитать документацию и разобраться - бездумно вставили еще один копипаст?

Я старался разобраться. Это первый вариант, который заработал как надо.

Заработал - ну и хорошо, я и забыл про него уже :)

Спасибо за подсказку, сейчас переписал просто на:

Options +FollowSymLinks
RewriteEngine on
RedirectMatch 301 /(.*)$ http://site2.ru/$1

Вроде работает :)

myhand:
На "другом-то" хоть домене RedirectMatch точно нет?

На другом домене все стандартное Wordpress-ное.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#7

До rewrite log еще никто не дошел?

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)

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