Développement1 juillet 2026· via DEV Community

Nginx corrige une erreur d’affichage de l’interface RabbitMQ

Nginx corrige une erreur d’affichage de l’interface RabbitMQ

Image : DEV Community

Lorsque l’interface de gestion de RabbitMQ est placée derrière un proxy inverse Nginx sous un sous-chemin comme /rabbitmq/, les files d’attente et les appels API peuvent disparaître sans avertissement. Le responsable est l’habitude de Nginx de décoder %2F — la barre oblique encodée en URL — en une barre oblique littérale avant que la requête n’atteigne RabbitMQ. Comme l’API de gestion de RabbitMQ utilise %2F pour désigner l’hôte virtuel par défaut, la barre oblique décodée transforme /api/queues/%2F/my-queue en /api/queues///my-queue, rendant les points d’accès inutilisables.

Les solutions courantes inefficaces

De nombreux guides suggèrent de désactiver merge_slashes ou de réécrire les chemins, mais ces ajustements n’empêchent pas Nginx de normaliser l’URI avant de la transmettre. Même une règle rewrite ne peut pas préserver le %2F original une fois que Nginx a modifié $uri.

La solution en une ligne

La variable $request_uri de Nginx conserve la requête brute et non décodée exactement telle que le client l’a envoyée. En utilisant $request_uri dans une condition if, vous contournez entièrement la normalisation de Nginx. Pour les chemins d’API, correspondre à l’URI brute et la transmettre directement à RabbitMQ sans décodage. Pour les ressources statiques et les pages non-API, une simple règle rewrite suffit. Cette configuration préserve les barres obliques, rétablit les pages des files d’attente et empêche les échecs silencieux de l’API sous un routage par sous-chemins.


Source : DEV Community. Synthèse éditoriale assistée par IA — TechnoExpress.

Lire la source originale sur DEV Community →

← Retour à l'accueil