Haga que la instalación local de Apache2 con múltiples hosts virtuales sea accesible dentro de la red

Haga que la instalación local de Apache2 con múltiples hosts virtuales sea accesible dentro de la red

Tengo un servidor local apache2 y mariaDB ejecutándose en mi máquina de desarrollo (Debian 10). Estoy usando servidores virtuales para poder tener varios sitios web disponibles al mismo tiempo. Sigo los siguientes pasos para lograr mi objetivo:

1) Cree y edite el archivo conf para el sitio web.sudo nano /etc/apache2/sites-available/website.conf

2) Complete el archivo con lo siguiente:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName website.local
    ServerAlias www.website.local
    DocumentRoot /var/www/website/public_html/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

3)sudo a2ensite website.conf

4)sudo systemctl reload apache2

5) Editar el archivo de hosts. sudo nano /etc/hosts, agregando la línea:127.0.0.1 website.local

En este punto funciona. Cuando acceda, http://website.localseré redirigido al sitio web local recién creado.

En el momento en que otra computadora accede a la dirección IP de mi PC (digamos que es: 10.0.0.100Irán a mi /var/www/html/index.htmlarchivo. No tengo idea de por qué esto funciona, ya que nunca lo configuré. Pero funciona.

Mi deseo: ir a 10.0.0.100una PC dentro de mi red abre una página donde puedo (manualmente) colocar una lista que redirige a los sitios web locales que tengo. Por ejemplo:

<ul>
    <li><a href="http://website1.10.0.0.100/">Website1</a></li>
    <li><a href="http://website2.10.0.0.100/">Website2</a></li>
    <li><a href="http://website3.10.0.0.100/">Website3</a></li>
</ul>

Me gustaría que me indiquen la dirección correcta, ya que no veo cómo lograrlo en este momento.

Respuesta1

Lo que desea hacer se puede lograr registrando los nombres correspondientes (también conocidos como website.local) en el DNS de su red.

Un nombre como website1.10.0.0.100es simplemente imposible de implementar por su cuenta porque, dado que comienza con una cadena ( website1), cualquier cliente lo considerará como un FQDN. Entonces, cualquier cliente intentará averiguar qué servidor DNS tiene autoridad en .100el dominio de nivel superior... y como probablemente habrás adivinado, este TLD no existe.

La forma más sencilla de implementar 3 sitios diferentes en su máquina sin modificar DNS es:

  • Tenga 3 direcciones IP diferentes en su computadora (usando ifconfig eth0 add 10.0.0.101, ifconfig eth0 add 10.0.0.102, etc...)

  • Implemente hosts virtuales basados ​​en IP en su Apache.

  • Tenga una portada que se vea así:

<ul>
         <li><a href="http://10.0.0.100/">Website1</a></li>
         <li><a href="http://10.0.0.101/">Website2</a></li>
         <li><a href="http://10.0.0.102/">Website3</a></li>
</ul>

Otra forma (más complicada) de implementar esto sería:

  1. Implemente su propio servidor DNS en su máquina para tener autoridad, por ejemplo, en el .bibicomputerTLD.

  2. En su bibicomputerzona DNS, hace website1.bibicomputer, website2.bibicomputer, etc... apunta a su dirección IP.

  3. Pida a sus compañeros de trabajo que agreguen su dirección IP en su lista DNS (en Linux /etc/resolv.conf:).

Pero apuesto a que a los informáticos de su empresa no les gustará esta solución.

información relacionada