Serveur web ? (Poco pour Yadoms et Nginx en front)

Questions générales sur l'installation et l'utilisation de Yadoms
SHN42
Messages : 6
Enregistré le : 23 novembre 2021, 16:29

Serveur web ? (Poco pour Yadoms et Nginx en front)

Message par SHN42 »

Bonjour,

Je viens de découvrir Yadoms que je tente de paramétrer sur une machine Linux (Debian) qui possède déjà un serveur web (Nginx).

J'ai vu que l’exécutable Yadoms embarquait déjà un serveur web (Poco il semblerai).
Cependant, je ne souhaite pas qu'il écoute sur le port 8080, mais sur le port 80 classique (ou 443 si https).

Mon problème est que ces ports étant déjà occupés par Nginx, et bah ça marche pas ^^

Du coup, est-il possible de gérer des virtuals hosts en quelques sorte avec le serveur web embarqué par Yadoms ?
ou je suis forcé d'utiliser Nginx en proxy ?

A défaut, est-il possible de désactiver le serveur web de Yadoms, et de dire à Nginx de taper dans le répertoire www à la place de Poco ?
Dans ce cas, est-ce qu'il y a une configuration particulière à appliquer au serveur web ?

Merci d'avance pour votre aide,
Modifié en dernier par SHN42 le 24 novembre 2021, 12:00, modifié 1 fois.
Avatar du membre
sgallou
Messages : 128
Enregistré le : 25 avril 2017, 09:56

Re: Serveur web ?

Message par sgallou »

Bonjour et bienvenue sur le forum,

oui, Yadoms embarque son serveur web (Poco actuellement).
Pour écouter sur un autre port que celui par défaut, il faut aller modifier yadoms.ini (dans le même répertoire que l'exécutable).

Il n'est pas possible de désactiver le serveur web Yadoms car il ne se contente pas de servir des pages (gère un websocket, des alias, etc...).

Je ne suis pas spécialiste de ce genre de problème, mais je pense que la solution serait effectivement de configurer NGINX pour rediriger le flux Yadoms.

Sébastien
SHN42
Messages : 6
Enregistré le : 23 novembre 2021, 16:29

Re: Serveur web ?

Message par SHN42 »

Bonjour,

Merci beaucoup pour le retour :)

J'ai bien compris que je pouvais personnaliser le port d'écoute dans le .ini
Le truc c'est que je souhaiterai accéder à l'interface Yadoms sur les ports standards (80 et 443), mais ceux-ci sont déjà pris par Nginx (et je ne vais pas les modifier), donc ça ne marche pas...

Du coup, effectivement, s'il n'est pas possible de désactiver Poco pour le remplacer, je n'ai pas d'autre choix qu'avoir Nginx en front sur le 80, et rediriger le flux sur le 8080 (par exemple) pour Poco.

Est-ce que l'on sait quels flux sont à rediriger ?
Je prends tout ce qui arrive sur le 80 (TCP et UPD), et je fais suivre à Poco ou il y'a d'autres subtilités ?
Avatar du membre
sgallou
Messages : 128
Enregistré le : 25 avril 2017, 09:56

Re: Serveur web ?

Message par sgallou »

Je ne vois pas d'autres subtilités, les websockets étant basés sur TCP, TCP devrait suffire.
Tenez-moi au courant, cette installation est peu courante, le résultat m'intéresse ! :D

Sébastien
SHN42
Messages : 6
Enregistré le : 23 novembre 2021, 16:29

Re: Serveur web ?

Message par SHN42 »

Je donnerai des nouvelles avec plaisir, si cela peut en aider d'autres par la suite...

Actuellement je bloque sur le lancement de l’exécutable Yadoms.

J'ai bien configuré le .ini avec toutes les informations relatives à la base de données (PostgreSQL), mais il semblerai qu'il y ai des requêtes non standard qui plantent le démarrage :
"INSERT OR REPLACE INTO Configuration (section, value, lastModificationDate) VALUES..."

INSERT OR REPLACE, c'est spécifique à SQLite ?
Avatar du membre
sgallou
Messages : 128
Enregistré le : 25 avril 2017, 09:56

Re: Serveur web ?

Message par sgallou »

Hmmm.... Vous utilisez PostgreSQL, je dois avouer que ça fait un moment que nous n'avons pas testé Yadoms avec PostgreSQL...

J'ai bien l'impression effectivement que "INSERT OR REPLACE" soit spécifique à SQLite, c'est donc très probablement un bug de Yadoms avec PostgreSQL J'ai ouvert une issue.

En attendant, le plus simple (et sûr !) est d'utiliser la base SQLite intégrée à Yadoms.

Désolé pour le bug, et merci de nous l'avoir remonté,

Sébastien
jano42
Administrateur
Messages : 4
Enregistré le : 25 avril 2017, 09:48

Re: Serveur web ?

Message par jano42 »

Bonjour
Quelle version de PostgreSQL utilisez-vous ?
SHN42
Messages : 6
Enregistré le : 23 novembre 2021, 16:29

Re: Serveur web ?

Message par SHN42 »

Bonjour,

Il s'agit d'une version 13.
jano42
Administrateur
Messages : 4
Enregistré le : 25 avril 2017, 09:48

Re: Serveur web ?

Message par jano42 »

Merci je vais regarder.

En souvenir j'avais testé cette fonction (insert or update) qui était supportée par PostgreSQL. Ce n'est peut-être plus le cas. (en souvenir j'ai testé une v9, qui est largement obsolète maintenant)

Je vais faire évoluer Yadoms pour supporter les versions récentes, et en profiter pour utiliser "UPSERT" qui est compatible SQLite/PosgreSQL
SHN42
Messages : 6
Enregistré le : 23 novembre 2021, 16:29

Re: Serveur web ? (Nginx proxy)

Message par SHN42 »

Bon... Bah c'est cool ! :D

Yadoms bien accessible en interne, et si je crée un virtualhost dans Nginx (qui correspond à un sous domaine), et que je fais suivre tout ce qui se présente :

Code : Tout sélectionner

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

server {
    listen 80;
    listen [::]:80;
    server_name yadoms.mondomaine.com;
    return 301 https://yadoms.mondomaine.com$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name yadoms.mondomaine.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_redirect http:// https://;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}
l'accès externe fonctionne également ! C'est top !!
(Nginx et Yadoms sont sur la même machine, d'où le 127.0.0.1, si besoin pour les suivants, il faut changer par l'IP correspondante).

Je vais essayer de configurer un Shelly, c'est tout ce que j'ai entre les mains pour le moment.

Encore merci pour votre aide :)
Répondre