Ich helfe einem Freund mit der Migration einer Parse-App auf einen dedizierten Server im Gegensatz zu einem Hosting-Provider, und ich habe stecken bleiben versuchen, einen Fehler zu beheben, den ich DENKEN bin in der Parse Server-Instanz auf dem Server.MongoError schreibe EPIPE "in Parse-Server Installation
, Zum einen ist hier der Fehler-Stack von der PM2-Logs, es jedes Mal, wenn ein GET oder POST gemacht wird an den Server geworfen wird: Ich bin nicht wirklich sicher, wie der Art der
parse-wrapper-0 (err): at null.<anonymous> (/usr/lib/node_modules /parse-server/node_modules/mongodb-core/lib/connection/pool.js:119:12)
parse-wrapper-0 (err): at g (events.js:273:16)
parse-wrapper-0 (err): at emitTwo (events.js:100:13)
parse-wrapper-0 (err): at emit (events.js:185:7)
parse-wrapper-0 (err): at Socket.<anonymous> (/usr/lib/node_modules/parse-server/node_modules/mongodb-core/lib/connection/connection.js:144:49)
parse-wrapper-0 (err): at Socket.g (events.js:273:16)
parse-wrapper-0 (err): at emitOne (events.js:90:13)
parse-wrapper-0 (err): error: Uncaught internal server error. { [MongoError: server localhost:27017 received an error {"name":"MongoError","message":"write EPIPE"}]
parse-wrapper-0 (err): name: 'MongoError',
parse-wrapper-0 (err): message: 'server localhost:27017 received an error {"name":"MongoError","message":"write EPIPE"}' } MongoError: server localhost:27017 received an error {"name":"MongoError","message":"write EPIPE"}
parse-wrapper-0 (err): at null.<anonymous> (/usr/lib/node_modules/parse-server/node_modules/mongodb-core/lib/topologies/server.js:308:40)
parse-wrapper-0 (err): at emitTwo (events.js:100:13)
parse-wrapper-0 (err): at emit (events.js:185:7)
parse-wrapper-0 (err): at null.<anonymous> (/usr/lib/node_modules/parse-server/node_modules/mongodb-core/lib/connection/pool.js:119:12)
parse-wrapper-0 (err): at g (events.js:273:16)
parse-wrapper-0 (err): at emitTwo (events.js:100:13)
parse-wrapper-0 (err): at emit (events.js:185:7)
parse-wrapper-0 (err): at Socket.<anonymous> (/usr/lib/node_modules/parse-server/node_modules/mongodb-core/lib/connection/connection.js:144:49)
parse-wrapper-0 (err): at Socket.g (events.js:273:16)
parse-wrapper-0 (err): at emitOne (events.js:90:13)
Seit Das Problem (Ich habe nachgesehen, was der EPIPE-Fehler ist, aber ich bin mir nicht sicher, warum es auf GETs passiert oder warum es jedes Mal schließt), ich gebe nur jede Information über den Server, die ich mir vorstellen kann ist dafür relevant.
Dies ist die relative Benutzerstruktur jetzt:
root -defuser: die Mongo Instanz sowie nginx -parse ausgeführt wird: Lauf Parse über PM2
ist die ecosystem.json Datei PM2 verwendet :
{
"apps":[{
"name" : "parse-wrapper",
"script" : "/usr/bin/parse-server",
"watch" : true,
"merge_logs" : true,
"cwd" : "/home/parse",
"env" : {
"PARSE_SERVER_CLOUD_CODE_MAIN": "cloud/main.js",
"PARSE_SERVER_DATABASEURI": "mongodb://parse:[email protected]:27017/beerdb?ssl=true",
"PARSE_SERVER_APPLICATION_ID": "super secret Parse key",
"PARSE_SERVER_MASTER_KEY" : " master key"
}
}]
}
Hier ist die mongo.conf Datei:
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongo.pem
#processManagement:
security:
authorization: enabled
#operationProfiling:
#replication:
#sharding:
setParameter:
failIndexKeyTooLong: false
## Enterprise-Only Options:
#auditLog:
#snmp:
Ich glaube nicht, nginx hat nichts damit zu tun, aber hier ist die Config-unabhängig:
# HTTP - redirect all requests to HTTPS
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
return 301 https://$host$request_uri;
}
# HTTPS - serve HTML from /usr/share/nginx/html, proxy requests to /parse/
# through to Parse Server
server {
listen 443;
server_name domain.here;
root /usr/share/nginx/html;
index index.html index.htm;
ssl on;
# Use certificate and key provided by Let's Encrypt:
ssl_certificate /etc/letsencrypt/live/domain.here/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.here/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
# Pass requests for /parse/ to Parse Server instance at localhost:1337
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:1337/parse/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
}
ich hier im Grunde aus Ideen bin, obwohl ich viel nicht gerade ein Experte bin mehr als nur Einstellung Apache, so könnte es eine dumme Aufsicht oder über meinen Kopf sein. Also, jede Hilfe wird geschätzt und es tut uns leid, wenn es etwas Einfaches ist.
fs.file-max = 1000000 in sysctl.conf behebt ein Problem für mich, bei dem GridFS den obigen Fehler verursachte, als ich versuchte, eine ~ 500MB Datei zu konsumieren. – Wollan