Accueil
» Comment faire
»
Identifier le flux en amont pour résoudre l'erreur 502 de Nginx d'ONLYOFFICE
Identifier le flux en amont pour résoudre l'erreur 502 de Nginx d'ONLYOFFICE
Commencez par vérifier la connexion entre Nginx et ONLYOFFICE Docs, puis consultez le journal d'erreurs correspondant à la réponse 502. Une erreur 502 Bad Gateway signifie qu'une passerelle n'a pas pu obtenir de réponse valide de son serveur en amont ; cela ne prouve pas, à lui seul, que la configuration publique de Nginx est en cause. Dans Docker, la solution habituelle consiste à rediriger Nginx vers le nom de service du serveur de documents sur son port interne 80 et à s'assurer que les deux conteneurs partagent le même réseau.
Que devez-vous vérifier avant de modifier Nginx ?
Un proxy inverse est un serveur qui reçoit une requête client et la transmet à un autre serveur. Dans une configuration courante, un serveur Nginx public gère le protocole HTTPS et redirige les requêtes vers ONLYOFFICE Docs via HTTP. ONLYOFFICE Docs exécute également son propre serveur Nginx en interne ; une page 502 peut donc être générée par le proxy externe ou par le conteneur du serveur de documents lui-même.
Commencez par identifier le serveur ayant émis la réponse. Comparez l'en-tête et l'horodatage du serveur de la page avec les journaux du proxy externe et du serveur de documents. Dans le cas d'une configuration Docker, vérifiez l'état du conteneur et les messages de démarrage récents.
Le premier contrôle consiste à vérifier que le conteneur ONLYOFFICE est en cours d'exécution avant de suivre le routage Nginx.
Si le conteneur redémarre ou vient de démarrer, consultez le journal avant de modifier les paramètres du proxy. ONLYOFFICE indique que le premier démarrage peut prendre une ou deux minutes, le temps que sa base de données s'initialise. Pour une installation Linux native, vérifiez ds-docserviceles journaux du serveur de documents ; ceux-ci se trouvent dans le répertoire ds-converterindiqué .systemctl status/var/log/onlyoffice/documentserver/
Nginx peut-il atteindre le serveur de documents en amont ?
Effectuez vos tests depuis le conteneur Nginx ou l'hôte, et non pas seulement depuis votre ordinateur portable. Les conteneurs situés sur des réseaux Docker distincts ne peuvent pas se résoudre mutuellement par leur nom de service, même s'ils sont tous deux en cours d'exécution. Si Nginx et ONLYOFFICE partagent un réseau Docker défini par l'utilisateur, utilisez le nom du service Compose ou un nom de conteneur résolvable, ainsi que le port d'écoute du conteneur. Le guide d'installation officiel de Docker indique le port 80 comme port d'écoute par défaut du serveur de documents ; un port hôte publié, tel que 8080:80, ne modifie pas le port interne.
Depuis le conteneur proxy, exécutez :
curl -I http://onlyoffice-documentserver:80/
Une réponse 200 du réseau proxy confirme que le nom et le port en amont sont accessibles.
Remplacez onlyoffice-documentserver`<nom_du_service>` par le nom réel de votre service Compose. Si la requête renvoie « Impossible de résoudre l'hôte », connectez les deux conteneurs au même réseau Docker ou corrigez le nom du service en amont. « Connexion refusée » signifie généralement que l'hôte cible a été résolu, mais qu'aucun service n'accepte de connexions sur ce port, que le conteneur n'est pas prêt ou que le port utilisé est incorrect. S'il s'agit d'une installation native, testez plutôt l'adresse locale et le port configuré, par exemple : `<adresse_locale>` curl -I http://127.0.0.1/.
Le guide Docker d'ONLYOFFICE couvre le port par défaut, les mappages de ports, le délai de démarrage et les journaux de conteneurs : installation et vérification de Docker .
Comment corriger la cible du proxy Nginx ?
Dans l'hôte virtuel HTTPS du nom d'hôte ONLYOFFICE, indiquez proxy_passle chemin vers le serveur en amont accessible. Cet exemple suppose un réseau Docker partagé et le nom de service indiqué ci-dessus ; modifiez-le en fonction de votre déploiement.
La cible du proxy pointe vers le nom du service conteneur et son port interne, et non vers un port hôte sans rapport.
Ne configurez pas de proxy conteneurisé pour une adresse IP publique, 127.0.0.1:8080sauf si le serveur de documents écoute dans le même conteneur ou si l'adresse IP de l'hôte est configurée et accessible. « À l'intérieur d'un conteneur » 127.0.0.1signifie que le serveur de documents est lui-même accessible. Évitez également d'envoyer des requêtes HTTPS au serveur en amont lorsque le point de terminaison du serveur de documents utilise HTTP.
Le protocole et l'hôte transmis indiquent à ONLYOFFICE l'URL publique utilisée par le client, et les en-têtes de mise à niveau autorisent les connexions WebSocket nécessaires à la communication avec l'éditeur en direct. ONLYOFFICE fournit des exemples mis à jour pour l'exécution de Docs derrière un proxy , notamment sa configuration Nginx HTTPS vers HTTP . Comparez-vous à cet exemple complet si votre environnement comporte plusieurs sauts de proxy ou utilise un préfixe de chemin d'URL.
Avant d'appliquer les modifications, validez la configuration nginx -t, puis rechargez Nginx en utilisant la méthode appropriée à votre hôte ou conteneur. Ne redémarrez pas tous les services simultanément ; un rechargement progressif permet de vérifier plus facilement si la correction apportée par le correctif en amont a modifié le résultat.
Que se passe-t-il si ONLYOFFICE renvoie toujours une erreur 502 ?
Si le proxy externe peut accéder à la page d'accueil du serveur de documents mais /healthcheckrenvoie une erreur 502, le problème se situe probablement au sein du serveur de documents plutôt que dans le serveur Nginx public. Consultez les journaux du conteneur et les journaux de service internes du serveur de documents. Pour les installations Linux natives, examinez les commandes d'état du service et le répertoire de journaux mentionnés ci-dessus. Si /welcome/la commande répond mais que le test d'intégrité échoue, considérez ces deux événements comme des signaux distincts : une page d'accueil statique ne garantit pas le bon fonctionnement du service de documents et de ses dépendances.
Ne tentez pas de résoudre ce problème en désactivant JWT. La validation par jeton Web JSON (JWT) authentifie les requêtes d'intégration ; une erreur de JWT provoque généralement une erreur d'autorisation, et non une impossibilité de se connecter au serveur en amont. Vérifiez les paramètres JWT uniquement si le proxy répond mais que l'intégration signale une erreur d'autorisation ou de jeton.
Enfin, vérifiez que Nginx achemine bien le nom d'hôte correct vers l'hôte virtuel approprié. Une faute de frappe dans le nom d'hôte server_name, le nom DNS en amont ou le port peut rediriger le trafic ailleurs ou entraîner l'utilisation d'une configuration obsolète par le proxy. Consultez le journal d'erreurs de Nginx pour rechercher des lignes telles que `<hostname>` host not found in upstream, connect() failed`<hostname>` ou `<hostname> upstream timed out` ; chacune fait référence à une couche différente.
Comment vérifie-t-on que la correction a fonctionné ?
Retestez le flux en amont depuis le réseau proxy, puis vérifiez le point de terminaison de santé publique et ouvrez un document via la plateforme connectée :
curl -I https://docs.example.com/healthcheck
Une réponse positive au contrôle de santé publique confirme que la requête transite par Nginx vers le serveur de documents.
Une réponse positive au test d'intégrité ne devrait plus renvoyer une erreur 502 ; un document devrait s'ouvrir et rester accessible pendant la modification. Si le test en amont réussit mais que la requête publique échoue toujours, examinez l'hôte virtuel Nginx sélectionné, sa configuration et ses journaux. Si la page d'accueil publique s'affiche correctement mais que le test d'intégrité renvoie toujours une erreur 502, poursuivez avec le diagnostic interne du service ONLYOFFICE.
Pour connaître le comportement des directives Nginx, consultez la documentation officielle du module proxy Nginx . Les commandes et les noms de service exacts peuvent varier selon le projet Docker Compose, la distribution Linux et la version d'ONLYOFFICE ; remplacez-les par vos noms réels et consultez les journaux du composant ayant généré la réponse.