Активные запросы запускаются только несколько раз
У меня странная проблема с 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 для кэширования всех событий активных запросов, потому что в противном случае вы всегда будете прослушивать только тот кластер, к которому вы подключены, который, похоже, не заботится о событиях в другие кластеры