Parse Server & Dashboard redémarrage sur PM2 causant 502 Bad Gateway

J’ai installé Parse Server et Parse Dashboard sur une instance AWS EC2 (Ubuntu 14.04). J’utilise le gestionnaire de processus pm2 pour configurer et exécuter les deux applications et nginx pour servir de serveur proxy.

Les deux applications fonctionnent correctement et je peux y accéder depuis le client. Le problème est cependant que lorsque j’accède à Parse Dashboard (qui effectue en interne les appels au serveur Parse local), la majorité des commandes POST sont renvoyées avec l’erreur 502 Bad Gateway.

Après quelques recherches, je soupçonne que pm2 est le problème car il continue à redémarrer les applications après un certain temps depuis que toutes les commandes POST sont exécutées en même temps. Je mets le paramètre max_memory_restart à 500M et les applications tuées et redémarrées, mais aucune différence.

Je dois mentionner que j’utilise pm2 pour la première fois. Alors, ai-je configuré pm2 mal ou est-ce que je manque quelque chose ici? Les journaux d’erreur pm2 sont vides.

Le journal des erreurs Nginx indique ce qui suit:

2016/08/12 08:39:56 [erreur] 7792 # 0: * 23 connect () a échoué (111: connexion refusée) lors de la connexion en amont, client: xxx, serveur: xxx, requête: “POST / parse / classes / AccountingDrawer HTTP / 1.1 “, en amont:” http://127.0.0.1:1337/parse/classes/AccountingDrawer “, hôte:” xxx “, référent:” https: // xxx / dashboard / apps / myapp / browser / _Role ”

Configuration par défaut de Nginx

server { listen 443; server_name xxx; root /usr/share/nginx/html; index index.html index.htm; # log files access_log /var/log/nginx/parse.access.log; error_log /var/log/nginx/parse.error.log; ssl on; # Use certificatee and key provided by Let's Encrypt: ssl_certificatee /etc/letsencrypt/live/xxx/fullchain.pem; ssl_certificatee_key /etc/letsencrypt/live/xxx/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'; # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits ssl_dhparam /etc/nginx/ssl/dhparam.pem; # Pass requests for /parse/ to Parse Server instance at localhost:1337 location /parse/ { 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; } # Pass requests for /dashboard/ to Parse Dashboard instance at localhost:4040 location /dashboard/ { 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:4040/dashboard/; proxy_ssl_session_reuse off; proxy_set_header Host $http_host; proxy_redirect off; } location / { try_files $uri $uri/ =404; } } 

PM2 écosystème.json

 { "apps" : [{ "name" : "parse-server-wrapper", "script" : "/usr/bin/parse-server", "watch" : true, "merge_logs" : true, "cwd" : "/home/parse", "env": { ... }, "max_memory_restart": "500M", "instances" : 2, "exec_interpreter" : "node", "exec_mode" : "cluster" }, { "name" : "parse-dashboard-wrapper", "script" : "/usr/bin/parse-dashboard", "watch" : true, "merge_logs" : true, "cwd" : "/home/parse", "max_memory_restart": "500M", "env": { "HOST": "localhost", "PORT": "4040", "MOUNT_PATH": "/dashboard", "PARSE_DASHBOARD_ALLOW_INSECURE_HTTP": 1, ... } }] }