L'hébergement mutualisé pour tou·te·s, imaginé par des développeur·euse·s, pour des développeur·euse·s.
Découvrir le Cloud PublicLes erreurs Connection to upstream refused et Connection to upstream skipped indiquent un problème au lancement de l’application. Cela peut soit être le serveur HTTP qui n’arrive pas à se lancer soit l'application qui se lance mais n’écoute pas sur la bonne IP. Quelle que soit la raison plus d’informations sont disponibles dans les logs $HOME/admin/logs/sites
.
Voici une liste non exhaustive d’exemples :
=> Log sites pour un site utilisant Apache :
STDERR: (122)Disk quota exceeded: apache: could not open error log file /home/foo/admin/logs/apache/apache.log.
=> Logs Apache ($HOME/admin/logs/apache) :
[error] (122)Disk quota exceeded: Couldn't bind unix domain socket /home/foo/admin/config/apache/run/cgisoc
k.XXXXXXX
[error] (122)Disk quota exceeded: could not create /home/foo/admin/config/apache/run/apache.pid
[error] apache: could not log pid to file /home/foo/admin/config/apache/run/apache.pid
Passez sur le pack supérieur dans l’onglet Abonnements de votre interface d’administration ou supprimez des fichiers. Cela concernera surtout les packs 100 Mo gratuits.
STDERR: (2)No such file or directory: apache: could not open error log file /home/foo/admin/logs/apache/apache.log.
STDERR: Unable to open logs
Tentez de redémarrer l’instance Apache (Web > Sites > Redémarrer un site de type PHP) pour le régénérer ou effectuez un changement notoire sur l’un des sites concerné (par exemple en ajoutant une adresse fictive).
STDERR: Syntax error on line XXX of /home/foo/admin/config/apache/sites.conf:
STDERR: Invalid command 'XXX', perhaps misspelled or defined by a module not included in the server configuration
Des caractères parasites ou des directives n’utilisant pas la bonne syntaxe on été ajoutés dans le champ Directives globales d’un site de type Apache personnalisé, au niveau du champ virtual host du site concerné ou au niveau de la configuration Apache (Web > Configuration > Apache). Corrigez ou supprimez les.
Il n’y a qu’un serveur Apache par compte, préférez donc gérer les directives Apache au niveau du virtual host ou d’un .htaccess
lorsque c’est possible.
=> Logs sites :
STDERR: [uWSGI] getting INI configuration from /home/foo/admin/config/uwsgi/XXXXX.conf
Upstream starting failed: /usr/alwaysdata/uwsgi/2.0.17.1/bin/uwsgi --ini /home/foo/admin/config/uwsgi/XXXXX.conf (return code: 1 | reason: -)
=> Logs uWSGI ($HOME/admin/logs/uwsgi) :
chdir() to /home/foowww
chdir(): No such file or directory [core/uwsgi.c line 2631]
-----
failed to open python file /home/foo/www/app.py
unable to load app 0 (mountpoint='') (callable not found or import error)
-----
unable to find "application" callable in file /home/foo/www/manage.py
-----
ModuleNotFoundError: No module named 'XXXX'
Selon l’erreur corrigez le site, l’environnement virtuel ou encore le script lui-même.
Par exemple, pour une application Python (tel que Django), vérifiez que la version dans l’environnement virtuel correspond à la version déclarée dans le site (de l’interface d’administration).
Pour les sites ne passant pas par Apache ou uWSGI, vérifiez le lancement du programme en SSH. Notamment s’il écoute bien :
Upstream starting failed: node ~/www/app.js (return code: - | reason: No such file or directory: '/www/')
Le répertoire de travail indiqué dans Web > Sites n’existe pas.
STDERR: internal/modules/cjs/loader.js:589
STDERR: throw err;
STDERR: ^
STDERR:
STDERR: Error: Cannot find module '/home/foo/www/app.js'
STDERR: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:587:15)
STDERR: at Function.Module._load (internal/modules/cjs/loader.js:513:25)
STDERR: at Function.Module.runMain (internal/modules/cjs/loader.js:760:12)
STDERR: at startup (internal/bootstrap/node.js:308:19)
STDERR: at bootstrapNodeJSCore (internal/bootstrap/node.js:878:3)
Upstream starting failed: node ~/www/app.js
Le fichier /home/foo/www/app.js n’existe pas.
Cette erreur signifie qu’une réponse HTTP renvoyée par votre serveur/application est incorrecte (mal formée), et donc que notre proxy ne peut la déchiffrer (et la renvoyer).