Подтвердить что ты не робот

Как обеспечить реализацию реалистичного поиска в Интернете в среде совместного размещения?

Я просматриваю документацию для Elastic Search, и я большой поклонник, и я бы хотел использовать его для обработки поиска моего ASP Приложение .NET MVC.

Это приводит к некоторым интересным поворотам. Если приложение ASP.NET MVC было на выделенной машине, было бы просто подключить экземпляр Elastic Search и использовать TCP Transport для локального подключения.

Однако я не на выделенном компьютере для приложения ASP.NET MVC, и не похоже, что я скоро перейду к нему.

Это оставляет хостинг Elastic Search на другом компьютере (в мире * NIX), и я, вероятно, поеду с общим хостингом там.

Тем не менее, одна из самых больших вещей, которые не хватает в Elastic Search, заключается в том, что он не поддерживает HTTPS и базовую аутентификацию из коробки. Если бы это было так, то этого вопроса не было бы; Я бы просто разместил его где-нибудь и обязательно включил невероятно безопасный пароль и HTTPS (возможно, с самозаверяющим сертификатом).

Но это не так.

Что дано, что является хорошим способом безопасного поиска Эластического поиска через Интернет?

Заметьте, я ищу что-то, что, надеюсь, не потребует написания кода для обеспечения прокладок для тех методов, которые я хочу (другими словами, написание форвардеров).

4b9b3361

Ответ 1

A теперь доступен плагин для elasticsearch, который позволяет вам заменить HTTP-транспорт встроенным экземпляром Jetty.

Поскольку он использует Jetty для обработки транспорта HTTP, он может обрабатывать SSL-соединения, а также настраиваться для аутентификации.


(Обратите внимание, что по-прежнему звучат советы, поскольку в целом это хорошая практика для абстрагирования ваших действий таким образом)

После ряда обсуждений в списке рассылки ElasticSearch я обнаружил, что текущее решение заключается в размещении ElasticSearch за другим прикладным уровнем и затем для обеспечения этого слоя.

Обоснование твердое; ElasticSearch сродни базе данных, и вы не сделали бы вашу базу данных открытой для всех.

Что-то, что я (и другие) срабатывает, заключается в том, что, поскольку ElasticSearch использует HTTP в качестве транспорта и использует JSON в качестве синтаксиса для операций, ElasticSearch предназначен для публичного просмотра.

Однако в настоящее время существует запрос для добавления поддержки транспорта HTTPS (при условии предоставления сертификата) вместе с базовой (дайджест) аутентификацией.

Ответ 2

Вам придется каким-то образом использовать брандмауэр, разрешая только трафик с сервера приложений, например. используя iptables на linux или какой-то персональный брандмауэр на окнах.

Это приведет вас к серверной территории, хотя - это не программное решение для этого.