Est-ce qu'il est possible d'avoir deux serveurs derrière un routeur?

Bonjour à tous,

J’ai déjà un serveur avec ownCloud derrière mon routeur, et je voudrais essayer Yunohost sans désactiver les redirections vers ce serveur dans mon routeur. J’ai configuré les redirections vers mon serveur Yunohost à partir des autres ports (8080 externe → 80 interne et 4343 externe → 443 interne dans mon cas), mais ça ne fonctionne pas bien, car quand je visite https://pastafarianist.noho.st:4343 je suis redirigé vers https://pastafarianist.noho.st. Cependant, https://pastafarianist.noho.st:4343/ssh/ fonctionne bien. Est-ce que c’est possible de configurer mon routeur et Yunohost de cette façon ? J’ai accès root à mon routeur.

Peut-être qu’il y a une façon pour accéder à mon instance Yunohost en utilisant son adresse IP? Je peux accéder seulement à la console d’administration, et les adresses comme https://<ip>/ssh me redirigent vers la console aussi.

Bonjour @Pastafarianist,

Pour communiquer avec ton serveur ça se fait via l’adresse IP.

Étant donné que l’on a qu’une adresse IPv4 par accès internet à cause de l’épuisement des adresses IPv4. Il n’est pas possible d’avoir plusieurs serveurs utilisant les mêmes services derrière la même adresse IPv4.
Si tu utilise un serveur pour le web et un autre pour du partage BitTorent ça ne pose pas de soucis. Par contre, si tu souhaite utiliser deux serveur pour le web, les clients vont taper sur le même port 80 ou 443. Les redirections que tu fait peuvent-être fonctionnelle si dans les navigateurs qui communiquent avec le serveur 1 t’y met nom_de_domaine.tld et avec le serveur 2 t’y met nom_de_domaine.tld:8080.

Une solution reste l’IPv6 qui n’est malheuresement pas assez bien déployée.

@Moul, merci pour ta réponse.

Les redirections que tu fait peuvent-être fonctionnelle si dans les navigateurs qui communiquent avec le serveur 1 t’y met nom_de_domaine.tld et avec le serveur 2 t’y met nom_de_domaine.tld:8080.

C’est éxactement ce que je fais. Je vais vers l’adresse https://pastafarianist.noho.st:4343/ssh/ (qui est redirigé vers serveur 2 avec Yunohost), et ça fonctionne bien. Mais si je vais vers https://pastafarianist.noho.st:4343/wallabag par exemple, je suis redirigé vers https://pastafarianist.noho.st/wallabag/, qui est associé avec serveur 1.

La chose la plus étrange est si je vais vers https://pastafarianist.noho.st:4343/wallabag/ (avec une barre oblique), tout fonctionne aussi.

Je ne comprends pas que cette barre fait. Pourquoi est-ce que je ne peux pas accéder a mon serveur sans elle ?

Bonne question à laquelle je n’ai pas la réponse. Vivement l’IPv6 quand même :slight_smile:

Hello,

J’ai deux instances Yunohost sur deux conteneurs openvz différents sur un même serveur Proxmox d’une unique machine physique, le tout en ipv4, et voilà ce que j’ai fait :

  • Pour XMPP, les records SRV permettent de mettre les ports qu’on veut pour un domaine donné, donc chaque domaine a son jeu de ports en entrée de mon routeur, qui lui redirige vers 5222/5269/etc du conteneur correspondant
  • Pour le web, pas de records SRV, donc c’est 80/443 obligatoire, donc j’ai un frontend nginx dans un 3e conteneur, sur lequel je redirige les ports 80/443 de mon routeur. Puis c’est du reverse proxy (proxy_pass) pour rediriger les requêtes des 2 domaines des 2 instances yunohots, vers les conteneurs qui les contiennent
  • Pour le mail, pas de records SRV non plus pour choisir les ports… et j’ai pas réussi à mettre en place de truc équivalent au reverse proxy web, même si j’ai cru comprendre que c’était faisable… si quelqu’un a des idées ça m’intéresse :slight_smile:

Donc à part le mail, ça marche pas trop mal. Je crois que mes instructions proxy_pass ne sont pas parfaitement propres par contre, car j’ai des soucis (genre refresh de la page après clic sur “mettre à jour”) quand j’accès à mes interfaces d’admin via le frontend nginx… du coup je fais ça en local et ça fonctionne.

Si ça intéresse des gens je peux détailler tout ça, mais c’est vraiment du bricolage car je suis loin d’être expert, donc je promets pas des fichiers de conf très propres x)

1 Like

@Gwendal, merci pour ton retour. Ça m’apprends des choses :wink:

Bonjour Gwendal,
J’ai utilisé LXC et je voulais utiliser Yunohost dans un conteneur. Pour accéder aux différents conteneurs j’ai créé un conteneur Nginx pour faire du reverse proxy. J’ai détaillé ma configuration dans ce post

N’étant pas un expert du reverse proxy…
Merci d’avance pour ton aide

1 Like

Hello,

Désolé de dépondre un peu tard, voici ce que j’ai comme configuration au niveau de mon conteneur reverse proxy, pour un conteneur yunohost donné. Mais il peut être dupliqué autant de fois que nécessaire pour chaque conteneur yunohost.

server {
    listen          443 ssl;
    server_name mon.domaine1.fr
    location /{
       proxy_pass             https://conteneur_yunohost1/;
       proxy_redirect          off;
       proxy_set_header        Host            $http_host:443;
    proxy_set_header        X-Real-IP       $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_set_header        X-Url-Scheme $scheme;
   }

    ssl_certificate     /certificates/mon.domaine1.fr/crt.pem;
    ssl_certificate_key  /certificates/mon.domaine1.fr/key.pem;

 ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!3DES:+HIGH:+MEDIUM;
add_header Strict-Transport-Security "max-age=31536000;";


}

server {
    listen 80;
    server_name mon.domaine1.fr;
     location /{
               rewrite  ^/(.*)$  https://mon.domaine1.fr/$1  permanent;
    }
}

Note que j’ai du mettre mes certifs au niveau du conteneur de reverse proxy, bien sûr.

En espérant que ça puisse aider !

1 Like