Site web statique, DNS et Nginx

Bien le bonjour :slight_smile:

Ayant récemment goûté à YunoHost 2.5 et Let’s Encrypt, je me suis mis en tête de migrer l’ensemble de mes outils personnels et à m’auto-héberger. Bien.

L’un de ces outils est mon blog, un site statique généré par Pelican à l’instar cet autre paquet YunoHost.

J’ai un problème : j’essaie de packager mon blog afin de gérer la compilation par Pelican et la configuration Nginx pour servir les fichiers statiques (HTML/CSS/JS et images), mais quand j’essaie d’accéder à l’adresse de mon blog, je me prends systématiquement une HTTP 302 me renvoyant vers l’administration YNH.

Or ma configuration DNS est celle-ci :

J’ai bien pris soin de configurer correctement les DNS sous YNH :

Je tente ensuite d’installer mon paquet hébergé sur GitHub qui se passe bien :

Mais si je tente d’y accéder … PAF, HTTP 302, redirection vers https://yuno2.cgeek.fr au lieu de rester sur https://test.yuno2.cgeek.fr est de pouvoir consulter mon blog.

La configuration Nginx me paraît très simple :

location ~ / {
  alias /var/www/cblog/;
  index index.html;
  # return 302 https://yunohost.org;
}

Le blog compilé par Pelican se trouve bien dans /var/www/cblog/. Par exemple j’ai le fichier /var/www/cblog/index.html qui n’attend que d’être servi.

Pour vérifier que je passais bien dans cette directive Nginx, j’ai ajouté ma propre redirection que vous voyez ici commentée. Si je la décommente, accéder à https://test.yuno2.cgeek.fr me redirige vers le magnifique site de YunoHost. Oui mais, ce n’est pas ce site que je souhaite consulter.

Alors voilà … j’imagine que cela n’est qu’un problème banal de configuration Nginx, mais si vous avez une idée … je suis preneur :slight_smile:

Il semble qu’une 1ère solution, bien qu’inélégante à mon goût, soit celle-ci :

root /var/www/cblog/;

# Requête autre que '/' : servie par les fichiers du blog
location / {
}

# Redirige '/' vers '/index.html'
location ~ ^/$ {
  return 302 https://$host/index.html;
}

Mais bon, ça veut dire que quand on arrive sur le blog, on tombe sur “https://test.yuno2.cgeek.fr/index.html”. Je trouverais cela plus élégant d’arrive simplement sur “https://test.yuno2.cgeek.fr”.

Salut,

si ton problème est bien d’avoir ton blog à la racine de ton domaine, effectivement d’expérience ce n’est pas un problème facile à résoudre. Ceci dit normalement il y a justement un mécanisme dans Yunohost qui permet de définir une app comme étant à la racine d’un domaine. Je ne sais pas quels bidouilles sont faites pour faire ca bien par contre :confused:

Oui c’est exactement cela que je souhaite : avoir mon blog à la racine du domaine spécifique à mon blog.

Aurais-tu des liens vers lesdites bidouilles ? Ou même un dépôt à étudier, ça ne me dérange pas de fouiller.

OK j’ai réussi à avoir le comportement voulu en commentant le contrôle d’accès par fichier LUA :

#    access_by_lua_file /usr/share/ssowat/access.lua;

Donc … je vais le réactiver et aller voir ce qu’il y a dedans.

Ça ne vient pas de la conf nginx, je pense que Pelican ne se contente pas de générer le site statique. Il va mettre ses doigts là où il ne devrait pas.
Car si tu désinstalles ton app et que tu en installes une autre à la place tu constateras que toutes les apps installées à la même adresse ont à présent le même comportement

Après l’avoir installé une fois, je l’ai dupliqué pour le coller dans une webapp vide, après restauration de la machine virtuelle.
Ton site fonctionne dans une webapp

Je constate en effet que toutes les apps installées à “test.yuno2.cgeek.fr” ont ce comportement. Même sur une installation neuve … :astonished: alors là je ne comprends pas. J’ai tenté d’installer Zerobin pour vérifier cela.

Oui je pense que c’est normal s’agissant d’un site HTML, c’est ça ?

Mais vu ce dont est capable YunoHost, je vais persister à faire fonctionner mon blog avec un simple package. :slight_smile:

edit : un détail qui a peut-être son importance : je ne travaille qu’en IPv6, avec un DNS AAAA.

OK, autant pour moi je me suis fait avoir par le cache…

Vire le tilde dans ton location.
Je ne sais pas comment est interprété le /, mais il passe pour une regex en raison du tilde.

Initialement je n’utilisais pas de tilde, mais j’avais lu qu’il était priorisé par Nginx, ce que je cherchais à faire ici pour éviter la redirection.

M’enfin, je vais essayer ce que tu me dis sur une installation totalement nouvelle, car je commence à douter de ce que j’ai fait.

Bon, j’ai retiré le tilde comme tu m’as dit et j’ai fait cette fois le test directement en prod. Et ça fonctionne.

Je pense qu’il y a un soucis avec la VM, car même sur une installation fraîche, je n’arrive pas à avoir Zerobin fonctionnel sur “test.yuno2.cgeek.fr”. En fait quoi que j’y installe, je suis redirigé vers “yuno2.cgeek.fr/yunohost/admin”.

Bref, le paquet fonctionne :slight_smile: merci pour votre aide, j’aurais buté longtemps sur la VM sans la remarque :

Bref, je marque en résolu.

Yope,

de mon côté, je pensais à yunohost app makedefault : Redirect domain root to an app

Ah ok, mais bon c’est peut-être overkill pour ma situation maintenant :slight_smile:

Du coup on peut s’attendre à un paquet “pelican_ynh” ? :wink:
sinon une explication (tuto) plus simple (sans VM tout ça), c’est possible ?