Настройка скриптов и базы данных mysql на отдельных серверах

0

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

У меня есть два сервера, которым нужно будет разговаривать друг с другом, сервер A будет размещать фактическое приложение на основе PHP; Сервер B будет содержать базу данных MySQL и сведения о соединении с сервером. Сервер B также будет находиться в закрытой сети, так что только люди в локальной сети смогут получить доступ к серверу, тогда как сервер A будет основан на сети.

Если посетитель имеет доступ к локальной сети для сервера B, он должен иметь возможность через сценарий на сервере A подключиться к базе данных на сервере B и получить доступ к ней и завершить доступ к ней.

Мой первый вопрос: возможно ли это? Я думаю, что это не на 100% уверен.

Во-вторых: как я могу написать script для доступа к серверу B script? Это похоже на доступ к включенному файлу или это будет удаленный вызов https? Я просто не уверен, как это сделать.

Любые советы очень ценятся!

Спасибо заранее!

  • 0
    Я запутался, у вас будет сервер A для PHP и сервер B для MySQL ? что означает: что-то вроде веб-сервера Apache на сервере A с приложением PHP, которое обращается к базе данных на сервере B ?
  • 0
    Из вашего описания (хотя я могу неправильно понять) это не уникальная настройка. Это нормальный способ настройки PHP / MySQL ...
Теги:

3 ответа

0
Лучший ответ

Удаленное подключение к базе данных MySQL не должно быть проблемой. Вот довольно подробное руководство Включение удаленного доступа к MySQL. Я смог заставить это работать с помощью простой настройки в WHM, называемой дополнительными хостами доступа к MySQL. При посещении этой области с сервера B вы можете добавить IP-адрес сервера A, позволяя серверу A подключиться к базе данных сервера B с помощью этого формата:
mysql_connect("IP Address of Server B","DB_username","DB_pass")
или независимо от вашей предпочтительной функции подключения к MySQL.

Если это не работает сразу, вам, возможно, придется внести некоторые изменения в настройки брандмауэра, но, насколько мне известно, вам должно быть возможно.

0

Прежде всего, это не хорошая архитектура для доступности. Если бы у вас была только одна машина, на которой работали как PHP, но и СУБД, тогда у вас есть одна точка отказа. Это не хороший сценарий доступности. С PHP и DB на отдельных машинах у вас теперь есть 2 единственных пункта отказа! Хуже!!

Но мы оставим это сейчас.

Да, было бы возможно, чтобы доступ к воротам через PHP, но PHP не реализует mysql-протокол, поэтому вам придется либо

1) сделать очень много программирования для реализации прокси-сервера mysql с дополнительной функциональностью.

2) обновите таблицу разрешений mysql, чтобы позволить удаленному хосту на временной основе

Действительно, вам не нужен доступ к вашему веб-серверу вне вашей подсети.

Однако, если машина имеет доступ к "локальной сети", все, что вам нужно сделать, это отказаться от отражателя порта где-то в этой сети, а затем указывать на них вместо СУБД. СУБД будет видеть адрес клиента так же, как и везде, где работал рефлектор порта (он может даже работать на другом порту самого сервера СУБД.

Однако нам нужно будет узнать намного больше о том, что вы подразумеваете под "доступом к локальной сети"

0

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

Существует много способов защитить сервер mysql, чтобы принимать соединение только с сервера. Мысль...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню