Yunohost derrière un reverse proxy apache

Bonjour à tous,
J’ai essayé d’installer yunohost derrière un serveur apache qui me sert de reverse proxy; mais sans succès (problème de communication entre nginx et apache2?). Je souhaiterais pouvoir m’en servir pour faire des tests de la nouvelle version, afin de ne pas perturber celle qui est en prod sur un serveur.
Quelqu’un a-t-il une conf apache qu’il utilise à partager, ou des idées pour m’aiguiller?

Je serais preneur de retour d’experience à ce sujet. Ce type de configuration me semble utile pour commencer la migration d’un système “legacy” à yunohost. On commence à mettre en place un yunohost derrière un apache existant avec du ProxyPass et du ProxyPassReverse, on reviendra dire ici comment ça se passe. (je pense qu’il y aura des blagues avec websocket notamment).

Bonjour,

Je suis également preneur si quelqu’un a une réponse à cela.

Car du coup dans le cadre de mon auto-hébergement, je suis contraint de réserver mon port 443 uniquement à Yunohost et c’est un peu pénalisant dans le cadre d’usage d’autres services sur mon domaine.

D’avance merci pour les réponses :wink:

Salut,

Normalement foutre nginx sur un autre port (81 par exemple ?) puis faire un proxy_pass de apache sur les bons domains vers YunoHost devrait faire l’affaire. Il va peut être falloir désactiver le ssl sur YunoHost par contre et le gérer côté apache.

Après ça peut se faire dans l’autre sens et utiliser https://github.com/YunoHost-Apps/redirect_ynh pour proxifier le nginx de YunoHost vers Apache.

registry=http://registry.npmjs.org/
J’ai réussi justement cette conf ce weekend, je partage donc mes trouvailles :

  1. Déclarer une conf dans /etc/apache2/conf/site-availables/[mondomaine].conf :

    # On commence par forcer HTTPS/WSS
    <VirtualHost *:80>
        RedirectPermanent /messages wss://[hostname]/messages
        RedirectPermanent / https://[hostname]/
        ServerName [hostname]
    </VirtualHost>
    
    # Puis on défini HTTPS/WSS
    <VirtualHost *:443>
        # Déclarer le nom du serveur
        ServerName [hostname]
        
        # Première partie, permet d'exposer du HTTPS/WSS
        # Declarer le certificat
        SSLCertificateFile /etc/letsencrypt/live/[hostname]/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/[hostname]/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/[hostname]/chain.pem
        
        # Paramétrage de SSL
        SSLEngine on
        SSLProtocol -ALL +TLSv1 +TLSv1.1 +TLSv1.2
        SSLHonorCipherOrder On
        SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:HIGH:!MD5:!aNULL:!EDH:!RC4
        SSLCompression off
    
        # Puis configuration du proxypass
        # Déclarer l'activation de SSL pour le proxypass, et ignorer le certificat auto-signé généré par yunohost
        SSLProxyEngine on
        SSLProxyVerify none
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerExpire off
        
        # Déclaration des proxypass : Websocket et site web
        # NE PAS METTRE L'IP INTERNE MAIS VOTRE NOM DE DOMAINE EXTERIEUR
        # La raison est que Yunohost va faire un redirect vers le nom de domaine qui l'appel, et donc votre client web va recevoir un 301 Moved to [Adresse IP interne]
        ProxyPass /messages wss://[hostname]:443/messages
        ProxyPassReverse /messages wss://[hostname]:443/messages
        ProxyPass / https://[hostname]:443/
        ProxyPassReverse / https://[hostname]:443/
    </VirtualHost>
    
  2. Déclarer sur le serveur apache que votre domaine est en interne pour que le DNS du proxypass aille où il faut :
    Modifier le fichier /etc/hosts
    Y mettre :
    [IP INTERNE] [NOM DE DOMAINE EXTENE]

Et voilà tout marche pour le mieux :slight_smile: