В настоящее время я работаю с установкой Magento Enterprise 1.12, работающей на паре кластерных веб-серверов Apache. Оба моих веб-сервера используют свои собственные базы данных на отдельных серверах, которые сгруппированы в конфигурации Master-Master MySQL.
Моя проблема в том, что я пытаюсь представить Solr 3.6.1 на картинке, и я несколько не уверен, как правильно добавить его в свой кластер. Должен ли я установить один экземпляр Solr (возможно, на другом сервере) и указать на него оба сайта, или мне нужен отдельный экземпляр Solr для обоих серверов? Нужно ли мне каким-то образом настроить два экземпляра Solr вместе? Прошу прощения, если я не предоставил достаточно информации.
Вы должны настроить solr на одном из ваших серверов и в конфигурации Magento Admin настроить Solr Server Hostname
в качестве адреса этого сервера (если у вас нет отдельных доменных имен, вставьте туда IP-адрес) - поскольку у вас есть репликация Mysql, они оба будут использовать одну и ту же конфигурацию.
Просто убедитесь, что имя хоста и порт (например, 8080) доступны на вашем втором сервере.
Slayer дал основной ответ. Solr run - это Java-приложение, работающее на Java-сервере, таком как getty. Теперь, предполагая, что ваш apache работает на порту 80, вы должны настроить свою сеть так, чтобы оба веб-сервера могли разговаривать с этим сервером solr (используя реальный IP-адрес в вашей конфигурации magento, а не 127.0.0.1), но никто вне сети не может.
Кроме того, я бы использовал ЭТО в качестве вашей безопасности, а не аутентификацию httpauth, потому что мы столкнулись с проблемами, когда это не сработало. В основном magento отправляет пинг во время некоторых операций без учетных данных и терпит неудачу и, таким образом, не отправляет настоящий запрос С кредитами.
ХОРОШО. Еще один важный момент - «полнотекстовая индексация».
У меня здесь длинный ответ по поводу переполнения стека https://stackoverflow.com/questions/11667728/magento-1-12-and-solr-3-6-no-proper-results-and-no-spell-suggestions/12984270#12984270 но я постараюсь быть кратким.
Если вы запустите полнотекстовый индексатор из оболочки через php shell / indexer.php --reindex-all catalogsearch_fulltext, он не будет работать должным образом. Событие не запускается. Так что запустите его из пользовательского интерфейса. Однако это проблема, потому что операция займет более 4 часов в зависимости от количества имеющихся у вас продуктов. Быстрое решение - настроить тайм-аут php вокруг функциональности полнотекстового индексатора. Потому что, очевидно, ваши таймауты apache должны быть короткими. Они могут быть короткими, но если тайм-аут php велик, он должен продолжать работу, даже если apache покажет мертвую страницу.
Также новейшая версия Magento оборачивает код полнотекстового индексатора в транзакцию. В результате во время его работы и поиска на сайте возвращается «тайм-аут блокировки ожидания» для таблицы catalogsearch_query. Мы удалили упаковку транзакции, и все было в порядке.