web-dev-qa-db-fra.com

Comment héberger plusieurs domaines et sous-domaines sur une seule instance AWS EC2

J'essaie de configurer 2 domaines (domain1.com et domain2.com) avec quelques sous-domaines (app.domain1.com) dans AWS et de les exécuter sur une seule instance (Amazon Linux, PHP, MySQL).

J'ai configuré 3 zones hébergées dans AWS Route53 avec les configurations suivantes.

Zone hébergée 1:
domain1.com
Type A
52.108.XX.YY

Hébergé Zone 2
domain2.com
Type A
52.108.XX.YY

Hébergé Zone 3
app.domain1.com
Type A
52.108.XX.YY

De plus, j'ai ajouté le code suivant au fichier http.conf dans la balise VirtualHost.

<VirtualHost *:80>   
     ServerName domain1.com   
     DocumentRoot "/var/www/html/domain1"   
     ErrorLog "logs/domain1-error_log"  
     CustomLog "logs/domain1-access_log" common  
     </VirtualHost>

     <VirtualHost *:80>   
     ServerName domain2.com   
     DocumentRoot "/var/www/html/domain2"  
     ErrorLog "logs/domain2-error_log"  
     CustomLog "logs/domain2-access_log" common  
     </VirtualHost>

     <VirtualHost *:80>  
     ServerName app.domain1.com   
     DocumentRoot "/var/www/html/app"  
     ErrorLog "logs/app.domain1-error_log"  
     CustomLog "logs/app.domain1-access_log" common  
     </VirtualHost>

Toutefois, seuls les domaines domain1.com et domain2.com sont résolus. Lorsque je visite app.domain1.com, cela me donne une erreur "impossible de trouver le serveur". S'il vous plaît aider comment configurer le sous-domaine - y at-il un problème dans l'installation de la zone hébergée ou httpd.conf?

5
pradyotghate

Ok, donc après environ 2 heures de lecture sur divers sites et de bricolage, je suis prêt à jouer. Voici comment faire cela.

Fondamentalement, vous ne devriez pas avoir plus de 1 zone hébergée (HZ) par nom de domaine, sinon les choses vont vraiment être merdiques. Si vous avez plus de 1 HZ pour un nom de domaine, veuillez supprimer celui qui a été créé pour le sous-domaine.

Chaque HZ aura 4 enregistrements -

Les deux enregistrements suivants sont créés par défaut. Ne pas les éditer/les supprimer.
NS- Il s'agit de l'enregistrement du serveur de noms. Si AWS Route53 n'est pas votre registraire, utilisez ns-servernumber.awsdns-number.com. et trois autres (4 totaux) enregistrements pour changer de serveur de noms pour votre registraire.
SOA- Que cet enregistrement soit. NE TOUCHE PAS ÇA. 

Créez les deux jeux d’enregistrements suivants (bouton bleu).
A- Laissez Nom vide. Sélectionnez A-IPv4 address pour Type . Dans Valeur , entrez l'adresse IP de votre instance Elastic Load Balancer ou EC2.
CNAME- Ajoutez * (astérisques/caractères génériques) dans le champ name . Sélectionnez CNAME dans le menu déroulant pour Type In Valeur entrez le nom de domaine.

Créez maintenant le fichier http.conf et structurez les hôtes virtuels comme je l’ai indiqué dans la question. 

Les choses devraient fonctionner maintenant :)

3
pradyotghate

Vous pouvez suivre le tutoriel sur ce lien: http://brianshim.com/webtricks/Host-multiple-sites-Amazon-ec2/

Une erreur courante, selon le lien, est: 

Cela a-t-il fonctionné? Sinon, voici une cause possible. Il est possible que Un autre fichier de configuration interfère avec celui-ci. Recherchez Dans un autre fichier .conf dans /etc/httpd/conf.d. Souvent, votre Httpd.conf principal inclura un autre fichier .conf dans ce répertoire. Assurez-vous que N’a pas de paramètres d’hôte virtuel qui interfèrent avec Avec les vôtres.

Après avoir défini les configurations, vous devez exécuter:

Sudo service httpd restart
1
filipebarretto

Cela peut être fait en installant Apache HTTP Server on AWS-EC2 instance et en configurant VirtualHost pour chaque DNS ou sous-DNS, comme suggéré par un Amazonien

Par souci de brièveté, lisez cette discussion discussion, cet exemple officiel _ et message technique officiel.


J'espère que cela a aidé!

0
Nirus