Чтобы antecipate вопрос: мне нужно, чтобы получить поддержку SSL на Heroku для того, чтобы установить связь между Heroku и Atlas MongoDB Cloud с помощью SSL? (TSL/SSL-соединение - это requirement для доступа к сервису Cloud Atlas MongoDB).Подключение Heroku приложения к сервису Atlas MongoDB Cloud
Я пытаюсь подключить Heroku приложение, написанное в Node.js, в кластер размещенного на Atlas MongoDB Cloud.
Моя текущая база данных размещается на MLAB (как Heroku Add-на), и MongoDB URI, используемый для доступа к кластеру через мангуста является (с использованием ххх опустить конфиденциальную информацию):
MONGODB_URI="mongodb://xxx:[email protected]:23266,xxx-a1.mlab.com:xxx/xxx?replicaSet=rs-xxx"
Теперь, когда я мигрировал мои данные MLAB в Atlas MongoDB Cloud, я в настоящее время доступа к кластеру с помощью URI:
MONGODB_URI="mongodb://xxx:[email protected]:xxx,cluster0-shard-xxx.mongodb.net:xxx,cluster0-shard-xxx.mongodb.net:xxx/xxx?replicaSet=xxx&ssl=true&authSource=admin"
Когда работает мой Heroku приложение локально в моей машине я могу получить доступ к базе данных без проблем. Я также могу подключиться к кластеру с помощью оболочки mongo.
Однако при запуске приложения в Heroku соединение не может быть установлено. В консоли JS Browser я получаю сообщение о недоступности службы 503. В Heroku, я получаю ошибку:
no primary found in replica set
Я знаю, что Atlas MongoDB Облако требует SSL соединение, в отличие от MLAB. На моей локальной машине я полагаю, что самоподписанный сертификат используется для успешного подключения к кластеру.
Мой вопрос: нужна ли мне поддержка SSL в Heroku, чтобы иметь возможность установить безопасное соединение между Heroku и MongoDB Atlas? Или поддержка SSL в Heroku требуется только для безопасного соединения с клиентом/Heroku?
Niklas, вы были правы! Проблема заключалась в доступе к белым спискам. О вопросе SSL, я думаю, вы правы, потому что я получил следующий ответ от поддержки Herkou: «(...) использование SSL для приложения полностью отделено от монгонга, поэтому я не думаю, что это быть проблемой здесь ». –
** Обновить ([источник] (https://kb.heroku.com/i-need-to-whitelist-heroku-dynos-what-are-ip-address-ranges-in-use-at-heroku)) : ** в качестве динамиков Heroku используется подмножество IP-диапазона экземпляров AWS EC2, можно добавить диапазоны [AWS IP] (http://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges .html) в белый список Cloud Atlas или получить надстройку для предоставления статического исходящего IP-адреса или использовать безопасную связь через TLS. –
Удивительный! Спасибо, что сообщили Бруно. :) –