Bonjour à tous,

Je possède donc un VPS dédié chez un hébergeur, et je galère un peu avec la config de mes sites virtuels :
Sur mon VPS, j'ai donc installé Nginx, qui fonctionne sans soucis, et j'ai créé deux fichiers de configuration server, nommé prod-site et test-site, tous les deux dans le dossier /sites-available avec pour chacun un lien symbolique depuis le dossier /sites-enabled. Jusque la, tout va bien.
Maintenant, j'aimerais que tous les sous-domaines de mon domaine pointent sur prod-site, sauf les sous-domaines test* (par exemple) qui doivent pointer sur test-site.
Sur le fichier de prod, j'ai mis :

 listen 80 default_server;
 server_name *.mywebsite.fr;

Sur celui de test :

listen 80;
server_name ~^test.+\.mywebsite\.fr$;

Mais quelle que soit l'adresse accédée, je tombe sur le site de prod.

Une idée de la cause ? Une bonne pratique à appliquer pour que ca fonctionne ?

Merci bcp ;)
Oliv.

4 réponses


As-tu essayé de changer le nom des fichiers de conf
Nginx prendrait le premier site qui match. En mettant 'aaa' devant le nom du lien de test, il serait lu en premier (à testé)
vu sur SO

Oliv
Auteur

Hello huggy,
Je vois que tu es sur tous les fronts ;)
Merci pour ton aide, mais nope, pareil, meme resultat.
J'ai créé un lien symbolique entre sites_enabled/aaa_site_test qui pointe vers sites_available/site_test, et meme resultat, je pointe toujours sur mon site de prod :(

Tu peux aussi changer de port pour tes tests
Tu peux aussi récupérer le nom du sous-domaine via une regex et faire un rewrite s'il commence par 'test'

Oliv
Auteur

Bah, pour le moment, j'ai fait plus simple (et ca répondra finalement largement à mon besoin) : j'ai juste mis en dur le test.mywebsite.fr, sans regex ou autre.
Je suis sur, comme ca, de ne chopper sur ce vhost QUE les sous domaines test.

Merci quand meme pour le coup de main ;)