Странное поведение Mean.io на виртуальной машине Azure

Я создал виртуальную машину Azure с ОС Ubuntu 14.04 LTS. Я установил на эту виртуальную машину приложение mean.io версии 0.3.3 с nginx, которое проксирует запросы в http-порт 3000 через порт 80. Я открыл одну конечную точку на лазурном портале для протокола TCP на частном порте 3000 и общедоступный порт 80. Я установил последнюю версию узла на виртуальную машину Azure. База данных (mongoDB) размещена на compose.io.

С помощью pm2 (https://www.npmjs.org/package/pm2) я создал демона которые запускают приложение.

По-видимому, все работает нормально: процессор был без нагрузки, а память была пустой (всего 100 МБ).

Но через некоторое время node.js не может обработать запрос. Я попытался сделать "завиток" в localhost 3000, но у меня нет ответа.

Проблема сохраняется только в виртуальной машине Azure: я пробовал то же приложение с той же конфигурацией на моем компьютере разработчика (рабочий стол ubuntu 14.04) и на Digital Ocean (другой дистрибутив сервера ubuntu 14.04), и все работает нормально без проблем.

Вы можете помочь мне найти проблему?


person Riccardo Treso    schedule 23.11.2014    source источник


Ответы (1)


Я попытался докеризовать всю инфраструктуру на той же машине (виртуальная машина CoreOS на лазурном сервере):

1 контейнер со средним приложением, 1 контейнер с MongoDB, проблема все еще сохраняется !!!

наконец, я нашел решение: поддерживайте соединение с MongoDB. Я изменил файл server.js из среднего приложения в этом режиме:

var options = {
server: {
        socketOptions: { keepAlive: 1 }
        }
};
var db = mongoose.connect(config.db, options);

В этом режиме соединение все еще живо, и проблема была решена.

person Luca    schedule 13.01.2015