Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Перегруз сервера. в т.ч. БД


Автор: Gold Dragon 28.11.2014, 15:38
Поставил на сервер сайт на своём движке и через пару дней стал заваливаться сервер. Лог с ошибками примерно такой
Цитата

newsline.kotovsk.pro [Fri Nov 28 12:51:43 201] [error] [client 78.110.50.151] PHP Warning: mysqli::mysqli(): (42000/1203): User srv29814_new already has more than 'max_user_connections' active connections in /home/srv29814/newsline/includes/libraries/database/database.php on line 84

Лог access завален подобным
Цитата

newsline.kotovsk.pro 78.110.50.151 - - [28/Nov/2014:12:59:39 +0300] "HEAD / HTTP/1.1" 200 - "-" "-"
newsline.kotovsk.pro 78.110.50.151 - - [28/Nov/2014:12:59:39 +0300] "GET / HTTP/1.0" 200 1379 "-" "-"
newsline.kotovsk.pro 78.110.50.151 - - [28/Nov/2014:12:59:39 +0300] "HEAD /images/files/008.jpg HTTP/1.1" 200 - "-" "-"
newsline.kotovsk.pro 78.110.50.151 - - [28/Nov/2014:12:59:39 +0300] "GET /images/files/008.jpg HTTP/1.0" 200 282971 "-" "-"
newsline.kotovsk.pro 78.110.50.151 - - [28/Nov/2014:12:59:39 +0300] "HEAD /images/files/012.jpg HTTP/1.1" 200 - "-" "-"
newsline.kotovsk.pro 78.110.50.151 - - [28/Nov/2014:12:59:39 +0300] "GET /images/files/012.jpg HTTP/1.0" 200 12338 "-" "-"
newsline.kotovsk.pro 78.110.50.151 - - [28/Nov/2014:12:59:38 +0300] "GET / HTTP/1.0" 200 24610 "-" "-"
newsline.kotovsk.pro 78.110.50.151 - - [28/Nov/2014:12:59:39 +0300] "HEAD /images/files/008.jpg HTTP/1.1" 200 - "-" "-"


IP 78.110.50.151 принадлежит Хостеру. Тех поддержка мне объяснила что якобы сайт сам себя постоянно вызывает, по этом такой IP

Этот движок стоит на десятке сайтах, в том числе на этом хостинге, и мало того, на этом же аккаунте и использующие даже одну базу данных.. Подобных проблем больше нет..

В какую сторону копать, что нужно проверить? И вообще в чём может быть беда?

PS
в .htaccess блокировали этот IP, сайт работает без проблем. Но пока отключил

Автор: baldina 28.11.2014, 16:43
информации немного... для начала: mod_rewrite задействован? что в .htaccess?
Цитата(Gold Dragon @  28.11.2014,  15:38 Найти цитируемый пост)
на этом же аккаунте и использующие даже одну базу данных

ищите отличия

Автор: Gold Dragon 2.12.2014, 14:00
mod_rewrite задействован

содержимое .htaccess

Код

# временно блокирую IP
RewriteCond %{REMOTE_ADDR}       78.110.50.151
RewriteRule ^  -  [F]


AddDefaultCharset UTF-8

RewriteEngine On

Options -Indexes

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]


RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]    ##опционально - смотрите примечания##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|\.xml|/[^.]*)$  [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php

Цитата(baldina @  28.11.2014,  17:43 Найти цитируемый пост)
ищите отличия 
да вот в том то и оно... нет отличий...  Движок один и тот же. Да и сайт забит только "рыбой"

Автор: baldina 2.12.2014, 16:56
я ничего не вижу. попробуйте флаг L в последнем index

Автор: Gold Dragon 9.12.2014, 13:54
я тут малость отвлёкся... пара вопросов:

1.
Цитата(baldina @  2.12.2014,  17:56 Найти цитируемый пост)
Быстрая цитата 
что это может дать, на что обратить внимание?

2. А может ли это быть какой-нибудь скрипт на сервере (что-то типа вируса), который всё это делает?


Автор: baldina 9.12.2014, 14:46
Цитата(Gold Dragon @  9.12.2014,  13:54 Найти цитируемый пост)
что это может дать

гарантирует, что правила после этого применяться не будут

Цитата(Gold Dragon @  9.12.2014,  13:54 Найти цитируемый пост)
скрипт на сервере

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

область поиска причин надо как-то сократить, поэтому для начала надо проанализировать путь запроса
для этого
1. включить журнал mod_rewrite
Код

RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3

2. отследить, какой процесс на 78.110.50.151 инициирует запрос. возможно, на этот вопрос есть ответ
Цитата(Gold Dragon @  28.11.2014,  15:38 Найти цитируемый пост)
Тех поддержка мне объяснила что якобы сайт сам себя постоянно вызывает

если техподдержка действительно это выяснила

вообще запрос GET / выглядит подозрительно, т.к. не является запросом к виртуальному серверу. а приводит он (равно как http://78.110.50.151/) к Internal Error.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)