Активные запросы запускаются только несколько раз

У меня странная проблема с Parse: я использую его при кластеризации с протоколами HTTPS, применяемыми с nginx, если я использую некластерную версию с веб-сайта http, все события из активных запросов запускаются, но только из HTTPS и только кластерной версии Несколько раз событие запускается, вот мой index.js для сервера

    var express = require('express');
    var bodyParser = require('body-parser');
    var ParseServer = require('parse-server').ParseServer;
    var path = require('path');
    var fs = require('fs');

    var api = new ParseServer({
      databaseURI: 'mongodb://' + process.env.MONGO_USER + ':' + process.env.MONGO_$
      cloud: process.env.CLOUD,
      appId: 'appid',
      masterKey: 'master',
      logsFolder: process.env.LOGS,
      maxUploadSize: "128mb",
      verbose: false,
      facebookAppIds: ['fb'],
      oauth: {
        twitter: {
          consumer_key: "ck",
          consumer_secret: "cs",
      }},
      clientKey: 'ck',
      javascriptKey: 'jk',
      restKey: 'rk',
      publicServerURL: process.env.PUBLIC_URL,
      serverURL: process.env.SERVER_URL,
      liveQuery: {
        classNames: ["Notification", "ChatMessage", "Chat"]
      }});
      var app = express();

app.use(bodyParser.json({limit: '200mb'}));
api.use(bodyParser.urlencoded({limit: '200mb', extended: true}));
api.use(bodyParser.raw({limit: '200mb'}));

app.use('/public', express.static(path.join(__dirname, '/public')));
app.use('/parse', api);
app.get('/', function(req, res) {
  res.status(200).send('Server Running ..');
});

var httpServer = require('http').createServer(app);
httpServer.listen(process.env.PORT, function() {
  console.log('We are rocking, baby');
});

ParseServer.createLiveQueryServer(httpServer);

и это моя конфигурация nginx:

server {
    listen         80;
    server_name    sec;
    return         301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name xxx.com;
ssl_certificate /etc/letsencrypt/live/xxx.com-0001/fullchain.pem$
ssl_certificate_key /etc/letsencrypt/live/xxx.com-0001/privkey.p$
    client_max_body_size 200M;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         http://127.0.0.1:3000;

# Web Socket
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
}

    location '/.well-known/acme-challenge' {
        default_type "text/plain";
        root /var/www/xxxy;
    }

}

Любое предложение будет очень признателен, спасибо заранее

1 ответ

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

Другие вопросы по тегам