Comment résoudre l'erreur 502 (Bad Gateway) du serveur de documents ONLYOFFICE derrière un serveur Nginx ?

Un navigateur affiche une erreur « 502 Bad Gateway » lors de l'ouverture d'une URL ONLYOFFICE Docs, ou un connecteur Nextcloud/ownCloud ne parvient pas à joindre le serveur de documents. Dans les deux cas, Nginx reçoit généralement une requête, mais ne parvient pas à obtenir de réponse valide de son serveur en amont. Ce serveur peut être le service de documents interne d'ONLYOFFICE, un conteneur Docker ou un autre proxy inverse. Commencez par identifier quel serveur Nginx a renvoyé l'erreur 502 ; puis testez directement le serveur suivant avant de modifier la configuration.

Le guide de dépannage Linux d'ONLYOFFICE recommande de vérifier les ds-docserviceservices ds-converteret les journaux du serveur de documents. Son guide sur le proxy inverse mentionne également les en-têtes d'hôte et de protocole transférés. La procédure ci-dessous vérifie d'abord l'état des services, puis le routage Nginx et le réseau Docker.

1. Identifiez le serveur Nginx qui renvoie une erreur 502.

L'installation du package ONLYOFFICE inclut sa propre configuration Nginx, et un déploiement peut également comporter un proxy inverse Nginx externe. Docker peut ajouter un saut réseau supplémentaire. L'affichage de la page 502 à lui seul ne permet pas d'identifier la couche concernée ; il est donc conseillé de comparer l'URL publique avec un contrôle d'intégrité local et le journal d'erreurs Nginx.

Sur une installation Linux basée sur des paquets, testez le point de terminaison du serveur de documents local :

curl -i http://127.0.0.1/healthcheck

Si le serveur est configuré pour utiliser ONLYOFFICE sur un port local autre que celui par défaut, utilisez ce port. Une installation fonctionnelle renvoie normalement une réponse HTTP de succès true. Si cette requête locale échoue, corrigez le service Serveur de documents avant de modifier un proxy externe. Si la requête réussit localement mais que le nom d'hôte public renvoie une erreur 502, examinez la configuration Nginx externe : serveur en amont, protocole, en-têtes et chemin du pare-feu.

Vérifiez quels processus possèdent les ports attendus :

sudo ss -ltnp | grep -E ':(80|443|8080|8000)\b'

Les ports varient selon la topologie. Un mappage Docker classique expose un port hôte, par exemple 8080, vers le port 80 du conteneur ; une installation de paquet peut utiliser sa propre instance Nginx sur l'hôte. Ne présumez pas qu'il 127.0.0.1:80s'agit du serveur Nginx approprié simplement parce que les deux services sont sur la même machine.

2. Vérifiez les services et les journaux ONLYOFFICE

Lors de l'installation d'un paquet Linux, examinez le service de documents et le convertisseur :

sudo systemctl status ds-docservice ds-converter
sudo journalctl -u ds-docservice -u ds-converter --since "15 minutes ago" --no-pager

Le guide de dépannage d'ONLYOFFICE répertorie ces services et indique que la mémoire insuffisante, un conflit sur le port 80 et les journaux de service sont des éléments à vérifier en cas de non-démarrage des services Docs. Si un service est arrêté, examinez d'abord l'erreur, puis redémarrez uniquement le service concerné.

sudo systemctl restart ds-docservice

Le répertoire principal des journaux Linux est `/etc/logs` /var/log/onlyoffice/documentserver/. Consultez le journal d'erreurs Nginx et les journaux du service de documentation pour rechercher des messages tels que « connexion refusée », « délai d'attente dépassé » ou un fichier manquant. Ces messages indiquent des causes différentes : une connexion refusée signifie généralement que le processus ou le port en amont est indisponible, tandis qu'un délai d'attente dépassé peut indiquer que le service est surchargé ou bloqué.

Vérifiez également l'espace disque et la mémoire disponibles si les services s'arrêtent de manière répétée :

df -h
free -h

Ne redémarrez pas sans cesse un service défaillant sans consulter ses journaux ; un redémarrage peut masquer temporairement le symptôme sans pour autant résoudre un conflit de ports, une dépendance défaillante ou un problème de ressources.

3. Vérifiez que Nginx pointe bien vers le serveur en amont accessible.

Lisez l'hôte virtuel actif et confirmez l'adresse et le port exacts proxy_pass. Depuis la machine ou le conteneur où Nginx s'exécute, interrogez directement le serveur en amont. Par exemple, si le conteneur publie le port 80 comme port hôte 8080 :

curl -i http://127.0.0.1:8080/healthcheck

Remplacez l'adresse d'exemple par le point de terminaison réellement accessible depuis le proxy. Si Nginx s'exécute dans un conteneur Docker distinct, 127.0.0.1indiquez qu'il s'agit bien de ce conteneur Nginx, et non de l'hôte Docker ou du conteneur ONLYOFFICE. Utilisez un nom de service accessible sur un réseau Docker partagé ou l'adresse hôte et le port publié corrects.

Vérifiez que le protocole en amont correspond au protocole côté serveur. Utilisez cette option http://si le serveur côté serveur utilise HTTP simple et https://uniquement s'il est configuré pour TLS. Envoyer du HTTP vers un port TLS, ou du TLS vers un port HTTP simple, peut rendre un service fonctionnel indisponible pour Nginx.

4. Vérifiez les en-têtes transférés et le proxy WebSocket

Le guide de proxy inverse d'ONLYOFFICE recommande de conserver les en-têtes X-Forwarded-Protode X-Forwarded-Hostprotocole et de nom d'hôte d'origine afin que l'application les connaisse. Les exemples officiels de Nginx transmettent également les en-têtes de mise à niveau. Si un proxy externe est placé devant ONLYOFFICE, comparez sa configuration avec le scénario officiel correspondant à votre topologie.

Vous trouverez ci-dessous un exemple simplifié de conteneur Docker mappé sur le port hôte 8080. Placez la mapdirective dans le contexte Nginx httpet adaptez le nom d'hôte, la configuration TLS et le port en amont à votre configuration :

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen 443 ssl;
    server_name docs.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

Il s'agit d'un modèle de référence, et non d'une solution de remplacement universelle. En particulier, ne le copiez pas par-dessus la configuration Nginx fournie avec ONLYOFFICE sans avoir préalablement identifié le bloc serveur qui gère les ports 80 et 443. Si Nginx partage le même hôte qu'ONLYOFFICE, vérifiez d'abord l'absence de conflit de ports et redirigez le proxy externe vers le serveur interne configuré pour votre déploiement.

Après modification, testez la configuration avant de recharger Nginx :

sudo nginx -t
sudo systemctl reload nginx

Si le test de configuration échoue, corrigez le fichier et la ligne signalés avant de recharger. Une erreur de syntaxe et une erreur 502 du serveur sont deux problèmes distincts ; un test réussi nginx -tconfirme la syntaxe, et non la réponse du serveur.

5. Si ONLYOFFICE s'exécute dans un conteneur Docker, vérifiez son état et le mappage des ports.

Vérifiez si le conteneur est en cours d'exécution et quel port hôte est publié :

docker ps --filter name=onlyoffice
docker port <container_name_or_id>
docker logs --tail 100 <container_name_or_id>

Le guide d'installation officiel de Docker associe les ports hôtes au port 80 du conteneur et son exemple vérifie les journaux du conteneur si la page d'accueil ne se charge pas. Utilisez le port indiqué comme docker portport amont côté hôte. Si Nginx et ONLYOFFICE sont tous deux des conteneurs, placez-les sur un réseau partagé et configurez la redirection vers le nom de service ONLYOFFICE et le port du conteneur, plutôt que vers l'adresse de bouclage de l'hôte.

Vérifiez l'état de santé du conteneur si votre fichier Compose définit un contrôle d'intégrité. L'exemple Compose actuel effectue ce contrôle http://localhost:8000/info/info.jsonà l'intérieur du conteneur. Un conteneur « en cours d'exécution » peut néanmoins présenter un service de documents défaillant. En cas de redémarrage ou de défaillance du conteneur, consultez les journaux pour examiner le démarrage de la base de données, la mémoire et la configuration avant de modifier le proxy externe.

ONLYOFFICE documente les chemins d'accès Docker persistants pour les journaux, les certificats et le cache de fichiers. Évitez de supprimer des volumes lors du dépannage ; ils peuvent contenir des certificats ou d'autres données nécessaires à la restauration du service.

6. Rechargez, testez le point de terminaison d'intégrité et testez à nouveau l'intégration.

Après avoir corrigé un problème confirmé, testez le nom d'hôte public et comparez-le avec le point de terminaison local :

curl -i https://docs.example.com/healthcheck

Utilisez l'URL réelle de votre serveur de documents. Une réponse positive à la fois sur le serveur local et sur le nom d'hôte public indique que Nginx peut accéder au serveur et renvoyer une réponse positive. Ouvrez ensuite la page d'accueil du serveur de documents et réessayez l'action qui avait initialement échoué dans Nextcloud, ownCloud ou votre autre connecteur.

Si le contrôle d'intégrité réussit mais que le connecteur signale toujours une erreur, le problème peut provenir d'un autre contexte que celui des erreurs 502 de Nginx : par exemple, l'URL du connecteur, la confiance TLS ou les paramètres JWT. Comparez ces valeurs avec la configuration du connecteur et d'ONLYOFFICE plutôt que de modifier les délais d'expiration du proxy sans discernement.

Diagnostic rapide

RésultatVérification suivante la plus utile
Le contrôle sanitaire local échoueVérifiez ds-docserviceles ds-converterports, les ressources et les journaux du serveur de documents.
Le contrôle d'intégrité local fonctionne ; l'URL publique renvoie une erreur 502Vérifiez le serveur Nginx externeproxy_pass : port accessible, protocole et chemin d’accès dans le pare-feu.
L'état de santé de Docker côté hôte est correct ; le conteneur proxy est défaillant.Vérifiez l'appartenance au réseau Docker et utilisez le nom du conteneur/service plutôt que proxy-container localhost.
Le contrôle d'intégrité fonctionne via l'URL publique ; seule l'intégration échoue.Vérifiez l'URL du connecteur, la confiance du certificat et la configuration JWT.

Références officielles

Laisser un commentaire

Comment cocher une case dans Word : 2 façons de créer une liste de contrôle

Comment cocher une case dans Word : 2 façons de créer une liste de contrôle

Découvrez comment ajouter des puces imprimables ou des cases à cocher interactives dans Word sous Windows, Mac et sur le Web, ainsi que comment remplacer le X par défaut par une coche.

Comment habiller le texte autour des images dans Word : 3 méthodes faciles

Comment habiller le texte autour des images dans Word : 3 méthodes faciles

Dans Word, pour habiller le texte, utilisez les options de mise en page, le format d'image ou le menu contextuel (clic droit), puis choisissez une mise en page d'image et contrôlez son déplacement par rapport au texte.

Comment imprimer une enveloppe : 2 méthodes simples dans Word et Google Docs

Comment imprimer une enveloppe : 2 méthodes simples dans Word et Google Docs

Imprimez une enveloppe dans Word ou utilisez un module complémentaire de publipostage pour Google Docs. Assurez-vous que le format du papier est adapté, insérez correctement l'enveloppe et vérifiez l'alignement avant d'imprimer le lot.

Comment ouvrir l'éditeur VBA dans Excel (Windows et Mac)

Comment ouvrir l'éditeur VBA dans Excel (Windows et Mac)

Ouvrez l'éditeur VBA d'Excel avec Alt+F11 ou accédez à Développeur > Visual Basic. Découvrez comment utiliser Développeur, Excel pour Mac et enregistrer des macros dans un format qui conserve le code VBA.

Comment indenter dans Word : 4 méthodes fiables pour formater les paragraphes

Comment indenter dans Word : 4 méthodes fiables pour formater les paragraphes

Apprenez à ajouter des retraits de première ligne, des retraits suspendus, des retraits à gauche et à droite dans Word à l'aide de la touche Tabulation, de la règle, des paramètres de paragraphe et des commandes de mise en page Web.

5 solutions efficaces pour résoudre le problème d'Outlook bloqué sur « Tentative de connexion »

5 solutions efficaces pour résoudre le problème d'Outlook bloqué sur « Tentative de connexion »

Utilisez cinq vérifications pratiques de connexion Outlook pour déterminer si Exchange, votre réseau, les compléments ou un profil Outlook sont à l'origine du message « Tentative de connexion ».

Comment insérer une feuille de calcul provenant d'un autre classeur dans Excel

Comment insérer une feuille de calcul provenant d'un autre classeur dans Excel

Copiez ou déplacez une feuille de calcul Excel dans un autre classeur, choisissez sa position et vérifiez les formules, les graphiques et la mise en forme après le transfert.

Comment faire pivoter du texte dans Excel avec des préréglages ou un angle personnalisé

Comment faire pivoter du texte dans Excel avec des préréglages ou un angle personnalisé

Utilisez le menu Orientation d'Excel pour incliner le texte des cellules vers le haut, vers le bas ou en diagonale, définir un angle précis et conserver la lisibilité des titres. Inclut les notes pour ordinateur et Web.

Comment utiliser la fonction Somme automatique dans Excel : méthodes rapides pour totaliser les lignes et les colonnes

Comment utiliser la fonction Somme automatique dans Excel : méthodes rapides pour totaliser les lignes et les colonnes

Utilisez la fonction Somme automatique d'Excel pour totaliser une ligne ou une colonne, vérifier la plage suggérée, reporter les totaux adjacents ou insérer la formule SOMME à l'aide d'un raccourci clavier.

Comment créer une nouvelle feuille Excel avec la même mise en forme

Comment créer une nouvelle feuille Excel avec la même mise en forme

Dupliquez une feuille de calcul pour conserver sa mise en forme, sa disposition et ses formules, puis effacez uniquement les données si vous avez besoin d'un modèle vierge. Procédure pour Excel (ordinateur de bureau, Mac et navigateur web).