web-dev-qa-db-fra.com

Créer un hôte virtuel supplémentaire Ubuntu Server 16.04.3

J'ai actuellement un site Web fonctionnant parfaitement sur mon serveur LAMP (Ubuntu Server 16.04.3).
J'aimerais maintenant en ajouter un autre au serveur. Je suis donc d'abord allé dans le fichier/etc/Apache2/sites-available et j'ai copié le fichier 000-default.conf dans le même répertoire tout en remplaçant le nom par mydomainname.com.conf.
Ensuite, j'ai édité ce fichier comme suit:

<VirtualHost mydomain.com:80>
   ServerName mydomain.com
   ServerAlias www.mydomain.com
   ServerAdmin admin.mydomain.com
   DocumentRoot /var/www/mydomain.com/public_html
   ErrorLog ${Apache_LOG_DIR}/error.log
   CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

Ensuite, j'ai tapé la commande a2ensite mydomain.com.conf
Alors j'ai redémarré Apache.
Ensuite, j'ai mkdir /var/www/mydomain.com/public.html (également modifié les autorisations)
Après cela, j’ai édité le fichier/etc/hosts et ajouté:

127.0.0.1 mydomain.com.
myinternalIP mydomain.com 
myStaticIp mydomain.com 

J'ai ensuite ajouté l'adresse IP interne du nouveau site ainsi que l'adresse IP publique du nouveau site ici.
Je suis ensuite allé dans le fichier/etc/network/interfaces:

The loopback network interface
auto lo
iface lo inet loopback

- The primary network interface(this is for the virtual Host already on the server)

auto eno1
iface eno1 inet static
     address 192.168.11.199
     netmask 255.255.255.0
     network 192.168.11.0
     broadcast 192.168.11.255
     gateway 192.168.11.59
     dns-nameservers 8.8.8.8
     dns-search currentsite.com

-Second IP interface(This is for the new virtual Host)<br>
iface eno1:1 inet static
   address 192.168.11.200
   netmask 255.255.255.0

Sortie lorsque je fais un Ifconfig:

eno1: Link encap: Ethernet HWaddr xx:xx:xx:xx:xx:xx 
      inet addr:192.168.11.199 Bcast:192.168.11.255 Mask:255.255.255.0 
      inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      TX packets:6085 errors:0 dropped:0 overruns:0 carrier:364 
      collisions:381 txqueuelen:1000 
      RX bytes:563896 (563.8 KB) TX bytes:5541282 (5.5 MB) 
      Interrupt:20 Memory:f7c00000-f7c20000

eno1:1 Link encap: Ethernet HWaddr xx:xx:xx:xx:xx:xx 
       inet addr:192.168.11.200 Bcast:192.168.11.255 Mask:255.255.255.0 
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
       Interrupt:20 Memory:f7c00000-f7c20000

lo    Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:9856 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:9856 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1 
      RX bytes:731051 (731.0 KB) TX bytes:731051 (731.0 KB) 

Sortie pour ifconfig Après avoir redémarré le serveur, je ne peux pas voir l'eno1: 1 que j'ai inséré dans le fichier/etc/network/interfaces

eno1: Link encap: Ethernet HWaddr xx:xx:xx:xx:xx:xx 
      inet addr:192.168.11.199 Bcast:192.168.11.255 Mask:255.255.255.0 
      inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:77 errors:0 dropped:0 overruns:0
      TX packets:76 errors:0 dropped:0 overruns:0 carrier:0  
      collisions:0 txqueuelen:1000 
      RX bytes:8760 (8.7 KB) TX bytes:10725 (10.7 KB) 
      Interrupt:20 Memory:f7c00000-f7c20000

 lo   Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:190 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:190 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1 
      RX bytes:14760 (14.7 KB) TX bytes:14760 (14.7 KB) 


Puis je fais ifup -v eno1: 1 puis l'eno1: 1 revient quand je fais un ifconfig. Je peux aussi maintenant rechercher localement 192.168.11.200 mais il redirige vers l’autre site Web du serveur.


Sortie pour le démarrage du réseau de service

failed to start network.service: Unit network.service not found.


Sortie pour l'état du réseau de service

network.service
 Loaded:not-found (Reason: No such file or directory)
 Active: inactive (dead)

Outpu pour ip route

default via 192.168.11.59 dev eno1 onlink 
192.168.11.0/24 dev eno1 proto kernel scope link src 192.168.11.199

Ensuite, j'ai ajouté une nouvelle entrée dans le pare-feu (à l'aide de Mikrotik Firewall) pour le port 80 afin d'autoriser le trafic vers HTTP pour le domaine. J'ai également redémarré le pare-feu pour être sûr.

Ensuite, je suis allé chez mon fournisseur de domaine et j'ai créé un enregistrement A pointant mon adresse IP statique vers le nouveau domaine et également créé l'enregistrement WWW pointant mon adresse IP statique vers le nouveau domaine. Tout est bien de ce côté.
J'ai cherché sur Google, mais je n'arrive pas à comprendre. J'ai parcouru de nombreux articles et je ne vois toujours pas mon nouveau domaine à partir du navigateur.
Je l’ai fait de cette façon lors de la mise en place du premier site Web sur le serveur et tout fonctionne correctement.
Si cela est répondu quelque part, s'il vous plaît, guidez-moi là-bas.

2
Deez Nutz

1. Vous n'avez pas besoin d'une deuxième adresse IP pour desservir plusieurs hôtes virtuels sur le serveur. Quelque chose de plus, si j'ai bien compris, vous n'avez qu'une seule adresse IP statique. Donc, si vous n'avez pas d'autres exigences particulières, je vous conseillerais de revenir sur les modifications liées aux interfaces réseau.

2. Il n'est pas obligatoire de faire quoi que ce soit avec /etc/hosts. Ce fichier sert en tant que local DNS et si vous souhaitez accéder à votre nom de domaine (FQDN) localement (à partir de la machine elle-même, lorsque vous n’avez pas accès à Internet ni à la configuration DNS) une nouvelle ligne, la suivante suffit:

127.0.0.1 example.com www.example.com second-example.com www.second-example.com
  • S'il vous plaît noter dans la question est écrit 127.0.0.1 example.com. - probablement le point à la fin est copier/coller une faute de frappe.

3. Comment fonctionnent les hôtes virtuels?

Côté client, lorsque vous tapez un nom de domaine complet dans le navigateur (par exemple http://example.com) , il vérifie [1] s'il existe un enregistrement pour ce nom de domaine complet dans /etc/hosts. Si aucun enregistrement n’est présenté, , il demande à votre DNS (fourni dans /etc/network/interfaces ou dans /etc/resolv.conf ou par DHCP) de vous indiquer l’adresse IP du serveur. FQDN demandé. Et le DNS renvoie le A record pour le nom de domaine demandé. Ensuite, le navigateur envoie une requête HTTP à l'adresse IP fournie. L'en-tête de la demande contient l'adresse IP, le nom de domaine complet, etc .

  • [1] Pas exactement le navigateur, mais je ne veux pas élargir la réponse.

Du côté du serveur, lorsqu'une demande arrive à l'adresse IP du serveur sur un certain port, cette demande sera gérée par le service qui écoute ce port. Le port par défaut HTTP/HTTPS est 80/443 et Apache l'écoute/les - ceci est défini dans /etc/Apache2/ports.conf.

Lorsque Apace traite la demande, il lit l'en-tête de la demande et redirige la demande vers l'hôte virtuel correspondant au nom de domaine indiqué dans l'en-tête de la demande.

4. N'utilisez pas la balise VirtualHost de cette façon: <VirtualHost mydomain.com:80>. Ceci est un typo . À la place, utilisez-le tel quel par défaut: <VirtualHost *:80>. En réalité, l'astérisque * signifie toutes les interfaces réseau disponibles (adresses IP gérées par le serveur).

5. Selon ce qui précède, la configuration de votre Apache devrait ressembler à ceci:

<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
   ServerAdmin [email protected]

   DocumentRoot "/var/www/example.com/public_html"

   ErrorLog ${Apache_LOG_DIR}/example.com.error.log
   CustomLog ${Apache_LOG_DIR}/example.com.access.log combined
</VirtualHost>

<VirtualHost *:80>
   ServerName second-example.com
   ServerAlias www.second-example.com
   ServerAdmin [email protected]

   DocumentRoot "/var/www/second-example.com/public_html"

   ErrorLog ${Apache_LOG_DIR}/second-example.com.error.log
   CustomLog ${Apache_LOG_DIR}/second-example.com.access.log combined
</VirtualHost>
  • Habituellement, les définitions des différents hôtes virtuels sont placées dans des fichiers .conf distincts pour être a2ensite/a2dissite facilement.

  • Il n'est pas obligatoire de séparer les fichiers journaux (le cas est indiqué dans l'exemple). Ceci est juste une autre idée.

  • Dans la question est écrit ServerAdmin admin.example.com, vous devez fournir un email avec cette directive.

6. Si tout se passe bien, vous pouvez aller plus loin et installer un certificat HTTPS (SSL/TLS) gratuit à l'aide de Encript (Certbot):

3
pa4080