Я новичок в веб-разработке и настройке серверов. Я ищу совет или ссылку на учебник по настройке производственной системы. Прямо сейчас у меня есть сервер (Ubuntu, Apache, MongoDB и PHP). Он получает запрос, PHP запрашивает Mongo, а PHP отправляет запрошенные данные. Как мне заставить это работать с большим количеством серверов? Я читал, что вы можете создать кластер из основного и двух подчиненных узлов, которые работают как отдельные серверы под управлением Mongo, но работают ли они также с PHP? Или основной - единственный, на котором работает PHP? Я прочитал несколько документов на сайте Mongo и видео кого-то из 10gen, проходящего через это, но они ориентированы на людей, которые, кажется, уже понимают этот материал, я понятия не имею, и мне нужно начинать с самого начала.
Если кто-нибудь может помочь мне понять, где PHP (действующий как мой API) находится в этих кластерах, я был бы очень признателен! Заранее благодарю за любую помощь!
При масштабировании компоненты обычно разбиваются. У вас получится что-то вроде этого (это не стандартные имена, и вам не нужно этого делать, но это обычное дело):
Сколько вам нужно каждого, будет зависеть от потребностей вашего приложения. Что касается MongoDB, для производства вы захотите запустить как минимум набор реплик. Это будет как минимум один первичный, один вторичный и арбитр (см. Документацию, но в качестве быстрой рекомендации первичный и вторичный должны быть идентичны и, как правило, являются выделенными хостами, арбитр не имеет данных и является легковесным, может быть запущен на общем хосте).
Сервер приложений будет принимать запросы от клиентов, будь то люди или какое-либо другое приложение, вызывающее ваше приложение. Приложение будет использовать драйвер PHP для связи с репликой MongoDB, установленной по сети (а не локально, как вы, вероятно, делали до сих пор).
В конце концов, если вы продолжите расти, вам может потребоваться расширение до сегментированный MongoDB настроить. С точки зрения PHP, единственная разница будет заключаться в том, что вы общаетесь с процессом mongos, а не напрямую с наборами реплик. Похоже, что в этом случае это будет для вас в будущем, поэтому знайте об этом, но в ближайшем будущем в этом нет необходимости.