Варианты построения сети
О том, как использовать несколько машин для PHP и MySQL, чтобы распределить нагрузку.
Эта глава предназначена тем, кто размещаете свое приложение не на чужом сервере, а на своем и пользуется своей собственной линией выхода в Интернет. Во-первых, разрешите вас поздравить с таким богатством, так как вы - одни из немногих, кто себе может позволить такую роскошь. Скорей всего у вас есть внутренняя локальная сеть, которая через прокси смотрит в Интернет. На прокси-сервере расположен и Web-сервер, с помощью которого вы выставили в Интернет Web-узел своей компании или организации. Понятно, что установка дополнительных программ увеличит нагрузку на сервер, который мы уверены и без того загружен.
Мы предлагаем решение, которое позволит распределить нагрузку по двум машинам и значит увеличить скорость работы PHP-приложений, взаимодействующих с базой данных.
Рис. 27
Рис. 28
Первый вариант изображен на Рис. 27. В Интернет выносятся две машины. На одной устанавливается Web-сервер и PHP, а на другой сервер MySQL. При обращении к базе данных с помощью функции mуsql_connect() вы указываете не как обычно mysql12.leaderhost.ru, а IP-адрес соседней машины.
Например:
IP-адрес первой машины 226.117.45.2
IP-адрес второй машины 226.117.45.7
Тогда в PHP-странице, что работает на первой машине будет строка
mуsql_connect("226.117.45.7",$db);
Недостаток этой схемы в том, что для второй машины требуется дополнительный IP-адрес. С другой стороны к вашей базе данных могут обратиться из других PHP-страниц, которые хранятся на других машинах в Интернете.
Вторая схема, изображенная на Рис. 28, еще более изощренная. В локальной сети выбирается машина, на которую устанавливается сервер MySQL. При обращении к базе данных с помощью функции mуsql_connect() вы опять-таки указываете IP-адрес второй машины.
Например:
IP-адрес первой машины: 226.117.45.2 - по такому адресу она видна из Интернета, 192.168.0.5 - по такому адресу она видна внутри сети IP-адрес второй машины 192.168.0.104 - по такому адресу она видна внутри сети, а из Интернета не видна. Тогда в PHP-странице, что работает на первой внешней машине будет строка:
mуsql_connect("192.168.0.104",$db);
Александр Качанов (kachanov@ogs.gomel.by)
Вадим Ткаченко (vvtk@stealthcomp.com) (http://web.stealthcomp.com)
Андрей Головин (mine@convex.ru) (http://exper.ural.ru)