---
title: "Configuration de Aedes Websocket MQTT avec Plesk (Phusion Passenger)"
date: 'ven, 03 Jul 2026 16:27:39 -0400'
author: jmcouillard
image: https://jmcouillard.com/sites/default/files/styles/fixed_width_1200/public/articles/104/okkkk.jpg.webp?itok=2DvdES1l
published: true
type: blog
url: https://jmcouillard.com/fr/blog/configuration-de-aedes-websocket-mqtt-avec-plesk-phusion-passenger
language: fr
id: 104
---

L'utilisation de WebSocket et MQTT via Plesk nécessite quelques réglages. Voici les points principaux à retenir.

### nginx Setup

Dans les paramètres *Apache & nginx Settings*,  désactiver *Proxy mode*:
![Proxy mode checbox](https://jmcouillard.s3.amazonaws.com/public/jmcouillard/plesk-passenger-websocket-nginx.png)
  
Puis, ajouter les paramètres suivants dans la section *Additional nginx directives* pour permettre le support de Websocket à travers nginx et Passenger :  
  
```  
add_header X-Robots-Tag "noindex, nofollow" always;  
proxy_http_version 1.1;  
proxy_set_header Upgrade $http_upgrade;  
proxy_set_header Connection "upgrade";  
proxy_set_header Host $host;  
```

## Point d'entrée Phusion Passenger

Si l'application est configurée comme un module ES Javascript dans app.js file, alors Phusion Passengeger tentera de trouver un fichier `.bootstrap.cjs` pour démarrer. L'erreur suivante sera affichée :

> Error: Cannot find module '/your/projet/path/.bootstrap.cjs'

Pour résoudre ce problème, créez un fichier utilisant la syntaxe CommunJS et importez votre module :

```
(async () => {  
  await import('./app.mjs'); // Point to your actual ESM entry file  
})();
```

## Exemple d'application basique

Voici un exemple minimal d'application `app.mjs` qui permet le MQTT sur WebSocket et qui est compatible avec Phusion Passenger. L'application peut être exécutée en utilisant le support *built-in* node.js de Plesk.

```
import express from 'express';
import {Aedes} from 'aedes'
import http from 'node:http';
import {WebSocketServer, createWebSocketStream} from 'ws'
import dotenv from 'dotenv';

dotenv.config({quiet: true});

const app = express();
const server = http.Server(app);
const aedes = await Aedes.createBroker({persistence: 0})

/**
 * Enable if you're behind a reverse proxy (Heroku, Bluemix, AWS ELB, Nginx, etc)
 * see https://expressjs.com/en/guide/behind-proxies.html
 */
app.set('trust proxy', ((parseInt(process.env.BEHIND_PROXY) === 1)));

// Index page
app.get(["/"], (req, res) => {
  res.send("200");
});

// Create Websocket server
const wss = new WebSocketServer({
  server: server
})

// Bind the websocket server with Aedes
wss.on('connection', (websocket, req) => {
  const stream = createWebSocketStream(websocket)
  aedes.handle(stream, req)
})

// Launch app.
const PORT = process.env.PORT || 8080;
server.listen(PORT, () => {
  console.log(`App listening on port ${PORT}`);
  console.log('Press Ctrl+C to quit.');
});
```

