Torne a instalação local do Apache2 com vários hosts virtuais acessíveis na rede

Torne a instalação local do Apache2 com vários hosts virtuais acessíveis na rede

Eu tenho um servidor apache2 e mariaDB local em execução na minha máquina de desenvolvimento (Debian 10). Estou usando hosts virtuais para poder ter vários sites disponíveis ao mesmo tempo. Eu sigo as seguintes etapas para atingir meu objetivo:

1) Crie e edite o arquivo conf do site.sudo nano /etc/apache2/sites-available/website.conf

2) Preencha o arquivo com o seguinte:

<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) Edite o arquivo hosts. sudo nano /etc/hosts, adicionando a linha:127.0.0.1 website.local

Neste ponto funciona. Quando eu for, http://website.localserei redirecionado para o site local recém-criado.

No momento em que algum outro computador vai para o endereço IP do meu pc (digamos que seja: 10.0.0.100Eles irão para o meu /var/www/html/index.htmlarquivo. Não tenho ideia de por que isso funciona, pois nunca configurei. Mas funciona.

Meu desejo: entrar 10.0.0.100em um pc da minha rede abre uma página onde posso (manualmente) colocar uma lista que redireciona para os sites locais que possuo. Por exemplo:

<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>

Gostaria de ser apontado na direção certa, pois não vejo como conseguir isso no momento.

Responder1

O que você deseja fazer pode ser conseguido registrando os nomes correspondentes (também conhecidos como website.local) no DNS da sua rede.

Um nome como esse website1.10.0.0.100é simplesmente impossível de implementar sozinho porque, por começar com uma string ( website1), será considerado por qualquer cliente como um FQDN. Portanto, qualquer cliente tentará descobrir qual servidor DNS tem autoridade no .100domínio de nível superior... e como você provavelmente adivinhou, esse TLD não existe.

A maneira mais fácil de implementar três sites diferentes em sua máquina sem modificar o DNS é:

  • Tenha 3 endereços IP diferentes no seu computador (usando ifconfig eth0 add 10.0.0.101, ifconfig eth0 add 10.0.0.102, etc...)

  • Implemente hosts virtuais baseados em IP em seu Apache.

  • Tenha uma página inicial com essa aparência:

<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>

Outra maneira (mais complicada) de implementar isso seria:

  1. Implemente seu próprio servidor DNS em sua máquina para ter autoridade, por exemplo, no .bibicomputerTLD.

  2. Na sua bibicomputerzona DNS, faz website1.bibicomputer, website2.bibicomputer, etc... aponta para o seu endereço IP.

  3. Peça aos seus colegas de trabalho para adicionarem o seu endereço IP na lista DNS (no linux: /etc/resolv.conf).

Mas aposto que o pessoal de TI da sua empresa não vai gostar desta solução.

informação relacionada