Multiple serveur HTTP sur un VPS

a marqué ce sujet comme résolu.

Bonjour à tous, J’aurai besoin de vos conseils pour gérer mes appli http et leur accès : j’ai plusieurs serveur web installé sur un serveur windows (wamp ou équivalent -> j’en ai plusieurs comme ça et IIS)

Pour chacun, j’aimerai avoir un sous domaine et un lien https
Pour info, je suis hébergé chez OVH

Plusieurs questions :

  1. Comment attribuer un sous domaine à chacune des applis ? Il faut faire une redirection localhost:port -> sousdomaine.site.com ? Si oui via le httacces d’apache ? (Pour l’instant, je gère cela dans l’interface ovh, je crée une redirection sousdomaine.site.com vers IP:port)

Concernant le certificat SSL:
2. On doit faire un certificat par sous domaine ?
3. On peut utiliser d’autre ports que 443 et 8443 ? (j’ai besoin d’au moins un autre port!)

+0 -0

Hello,

Si tu as un VPS, tu devrais pouvoir utiliser les ports de ton choix, tu n’es pas restreint à 443.

Mais le plus simple et standard serait d’avoir un reverse proxy qui dispatche le trafic vers la bonne appli en fonction du (sous-)domaine pour n’ouvrir que le port 443 (ce qui évite d’avoir à préciser le port manuellement dans l’URL). Tu peux utiliser Nginx, Traefik (surtout si tu utilises des conteneurs Docker et que tu veux de la discovery) ou Haproxy par exemple, la config sera relativement simple. Apache devrait aussi faire le job.

Tu n’es pas obligé de générer un certificat par sous-domaine, il existe des wildcards mais ça ne s’applique qu’à un niveau de sous-domaine.
Par exemple un certificat pour *.toto.fr fonctionnera pour hello.toto.fr et bonjour.toto.fr mais pas www.hello.toto.fr.

Attention par contre avec WampServer : ce n’est pas fait pour du serveur de production mais uniquement pour du développement. La sécurité y est très souple, justement pour cet usage.

Salut,

Si tu as plusieurs sites web servis par apache, tu n’as pas besoin d’ouvrir plusieurs ports et/ou avoir plusieurs IP.

Il te suffit d’activer les virtual host (vhost) et ensuite tu peux avoir une configuration différente par site, le tout sur 80 et 443 uniquement.

Une config assez classique, c’est de faire un sous-dossier par site dans /var/www/, et d’avoir un fichier de config par site dans /etc/apache2/sites-available/. Tu peux ensuite activer/désactiver un site avec une simple commande, au besoin.

Apache sait quel site il doit servir grâce à l’en-tête HTTP Host que tous les navigateurs envoient systématiquement.

Pour le SSL, tu n’as pas forcément besoin de faire un certificat par sous-domaine, mais de ce que j’en sais, tous les fournisseurs ne permettent pas de faire du wildcard, i.e. *.monsite.com. Par exemple, Letsencrypt le permet maintenant, mais ça ne fait pas si longtemps. Donc à bien vérifier. Dans tous les cas ce n’est pas un problème pour apache, tu peux indiquer un certificat différent pour chaque virtual host.

Après pour les détails, j’ai un peu perdu de vue tout ça depuis quelques années car je ne fais plus du tout ça, et que c’est un peu la méthode old school avant la vague docker/conteneurisation, mais il y a bien assez de tutoriels pour tout t’expliquer comment faire. Bonne chance.

+0 -0

Salut.

Les réponses précédentes sont justes. Je me permets juste de suggérer Caddy. Il est capable de s’occuper des créations et renouvellement de certification TLS comme un grand (via ZeroSSL/Let’s Encrypt).

Il te suffit de faire pointer tes (sous-)domaines vers ton serveur, et d’utiliser un simple caddyFile type :

sub1.ndd.tld {
        reverse_proxy localhost:0000
}
sub2.ndd.tld {
        reverse_proxy localhost:0001
}
...
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte