2017-05-29 11 views
0

Ich habe ein seltsames Problem mit Parse: Ich verwende es in Clustering mit HTTPS-Protokolle mit nginx angewendet, wenn ich die nicht geclusterte Version von einer http-Website alle Ereignisse von Live-Abfragen sind gefeuert, sondern von HTTPS und die gruppierte Version nur ein paar mal wird das Ereignis ausgelöst, hier ist mein index.js für den ServerLive-Abfragen auslösen nur wenige Male

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); 

und das ist meine nginx-Konfiguration:

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; 
    } 

} 

jeder Vorschlag würde sehr geschätzt werden Vielen Dank im Voraus

Antwort

0

Finden Sie die Lösung heraus: Wenn Sie einen Cluster-Server haben, müssen Sie redis verwenden, um alle Live-Abfrage-Ereignis zwischenzuspeichern, denn wenn Sie nicht immer nur auf dem Cluster zu hören sind, was scheint sich nicht um die Ereignisse in den anderen Clustern zu kümmern

Verwandte Themen