2014-01-29 3 views
1

У меня есть служба облачного облака (сервер), где я размещаю базу данных Redis. У меня также есть веб-сайт, размещенный на лазурных веб-сайтах. Я хочу, чтобы веб-сайт мог разговаривать с Redis DB на порте 6379. Я знаю, что могу настроить публичную конечную точку для этого порта на моем сервере, но это откроет его для всего Интернета. Я хочу, чтобы он был открыт только для лазурных веб-сайтов (или даже лучше, только для моего веб-сайта). Как я могу это сделать?Azure облачное обслуживание и блокировка веб-сайтов блокировка

ответ

0

Веб-сайты Windows Azure находятся в изолированном пузыре отдельно от ваших облачных сервисов, и нет возможности преодолеть этот пробел. В идеале вы могли бы сделать это, подключив веб-сайт машину к другой Azure услуг через виртуальную сеть, но this FAQ подтверждает вы не можете сделать это прямо сейчас:

Могу ли я использовать веб-сайты Windows Azure с виртуальной сетью?

№ Мы не поддерживаем сайты с виртуальными сетями.

Открытие Redis над Интернетом не должно рассматриваться, так как оно не имеет такой безопасности, какой вы хотите, чтобы открыть свой порт публично, поскольку он предназначен для совместного использования - размещена с вашим приложением, поэтому вы действительно не захотите этого делать. Не обращайте внимания на дополнительные сетевые накладные расходы, которые будут потреблять производительность, которую вы ожидаете получить, используя что-то вроде Redis.

Я считаю, что ваша лучшая ставка, учитывая вашу текущую конфигурацию, заключается в том, чтобы добавить веб-роль, которая является частью одной и той же службы Azure Cloud, и запустить из нее веб-приложение, чтобы оно могло взаимодействовать с рабочей ролью. Для этого требуется лишь небольшая конфигурация (т. Е. Добавление InternalEndpoint к роли работника Redis). Хотя я понимаю, что веб-роли не предлагают в качестве трений модель разработки в качестве веб-сайтов, вы должны выбрать правильный инструмент для работы.

Еще один вариант, если вы хотите настроить Redis на виртуальной машине, а не связывать ее с облачной службой напрямую, заключается в том, что вы можете настроить виртуальную сеть, поместить виртуальную сеть Redis и настроить Cloud Service так что он входит в ту же группу сродства и добавляет раздел конфигурации NetworkConfiguration/VirtualNetworkSite в .cscfg облачной службы.

Какой подход имеет смысл, все зависит от того, как вы используете свой экземпляр Redis, но основное преимущество последнего подхода заключается в том, что экземпляр Redis не воссоздается каждый раз при развертывании Cloud Service и, следовательно, любые данные, которые находятся в он останется доступным между развертываниями. Еще одно преимущество - если вы хотите создать и использовать кластер Redis для нескольких облачных сервисов, это позволит вам это сделать.

+0

Спасибо Дрю! Я думаю, мне нужно больше узнать о концепциях Azure. Прямо сейчас у меня есть Redis на виртуальной машине. Но он размещен как облачный сервис (по моему лазурному порталу), размер сервера M. Вы имеете в виду, что я могу запустить эту виртуальную машину по-другому? – Thomas

+0

Я нашел здесь хорошее объяснение: http://www.windowsazure.com/en-us/documentation/articles/cloud-services-connect-virtual-machine/ – Thomas

+0

Вы можете * оставить его в рабочем окне, если это так вы запускаете его сейчас и им это нравится, однако вам нужно будет переопределить эту роль рабочего, чтобы он был частью той же группы сродства, что и VPN, и, очевидно, добавил к ней тот же раздел NetworkConfiguration/VirtualNetworkSite. В противном случае вы можете сделать виртуальную виртуальную машину, которая даже дает вам возможность запуска Linux-версии Redis, если это как-то более привлекательно для вашей команды. –

Смежные вопросы