В настоящее время я использую виртуальную среду для своего веб-сервера и сервера БД. Когда я обращаюсь к веб-серверу или серверу MySQL по отдельности, они оба работают быстро. У меня также есть веб-сайты, работающие на веб-сервере, которым не требуется сервер db, и все они загружаются быстро. Однако, когда я захожу на свой размещенный веб-сайт, который требует, чтобы веб-сервер звонил с сервера db, для каждой загрузки страницы возникает задержка около 5-7 секунд. Это было подтверждено как с помощью очень простого сайта, так и с помощью настройки Word Press. Вот конфиг:
Веб-сервер - CentOS 6.5, Apache 2.2.15
Сервер БД - CentOS 6.5, MySQL 5.1.73
Мой вопрос: постоянно ли серверы аутентифицируются друг с другом (и, таким образом, вызывают задержку) при каждом вызове db? Если это так, кто-нибудь знает, как установить постоянную аутентификацию между ними?
Я мог бы ошибиться в этом предположении, и аутентификация не могла иметь к этому никакого отношения. Я полностью открыт для любых идей на данный момент. Большое спасибо.
V / R,
Тони
Обновление от 17 апреля 2014 г.
DNS действительно был виновником. Как только я добавил каждый сервер в другой файл хоста DNS, задержка исчезла. Чтобы записать конкретно то, что я сделал.
Сначала я пошел к своим файлам хоста DNS, расположенным в / etc / hosts (обратите внимание, что это hosts, а не hosts.conf) на обоих серверах, и добавил каждый сервер: 192.168.0.1 server 1 192.168.0.2 server 2
Затем я перешел к файлу конфигурации nsswitch, расположенному в /etc/nsswitch.conf, и убедился, что оба файла конфигурации (по одному на каждом сервере) содержат следующую строку: hosts: files dns
Затем я проверил имя хоста и смог разрешить частный IP. Задержка исчезла !!! Спасибо за помощь и ответы на все.
V / R,
Тони
* Здесь старые сообщения *
Это большая задержка даже для настройки соединения и аутентификации, находятся ли веб-служба и сервер базы данных на одной виртуальной машине (одном сервере)? В противном случае может быть проблема с разрешением DNS.
Я предлагаю написать простейший php-код, который подключается к базе данных, используя сначала mysql_connect (который не сохраняет соединения) и более новый mysqli, который сохраняет соединения http://ca3.php.net/manual/en/mysqli.quickstart.connections.php и проверьте, сколько времени они занимают, это исключит проблему с кодом веб-приложения.
Другой тест - перейти на (веб) сервер и вручную подключиться к базе данных с помощью команды mysql и посмотреть, сколько времени это займет.
Во всех этих тестах, помимо соединения, вы можете добавить простой запрос выбора.