Como forçar o Apache a pular a ligação para a interface com falha? [fechadas]

1

Eu corro o Apache dentro do VirtualBox em um laptop. Eu também usei o VirtualHost-s baseado em IP. Eu quero poder ter acesso à LAN sempre que eu me deslocar para determinadas redes pré-conhecidas . O IP, no entanto, não está "em movimento", já que configurei os DHCPs em os roteadores de rede para atribuir IPs estáticos a MACs, então o IP é basicamente estático em cada localidade.

Eu quero ter todos esses IPs na minha configuração do Apache.

No entanto, a diretiva Listen falha quando um do interfaces não está disponível.

Existe alguma maneira de fazer a diretiva Listen funcionar? em uma moda OR em vez de moda AND ?

Obrigado.

    
por Agnes K. Cathex 17.08.2018 / 18:31

1 resposta

1

Se você quiser que o Apache ouça todos os endereços IP atribuídos à máquina, você pode simplesmente especificar uma diretiva de ligação sem qualquer endereço IP, por exemplo:

Listen 80

Se você precisar se vincular a apenas um subconjunto de endereços atribuídos, uma possível solução para isso é garantir que os dois endereços IP sejam sempre atribuídos à máquina, mesmo quando não estiverem atribuídos à interface física.

A partir de perguntas e comentários Eu entendo que você está atualmente usando BSD, mas estão abertos para outras plataformas, se isso resolver o problema. A seguir é como eu fiz algo muito semelhante no Ubuntu. Espero que alguma variação disso também funcione no BSD, mas eu não tenho conhecimento suficiente sobre o BSD para fornecer uma solução detalhada para o BSD.

O Linux possui um driver de rede dummy com uma interface simulada chamada dummy0 à qual você pode atribuir endereços IP. Esses endereços IP serão considerados locais da mesma forma que os endereços IP atribuídos às interfaces físicas, portanto, o Apache pode se vincular a eles.

Em /etc/network/interfaces , adicionei uma linha post-up como esta:

post-up /usr/local/sbin/eth0-post-up

E, em /usr/local/sbin/eth0-post-up I, carreguei o driver dummy e configurei todos os endereços IP necessários:

#!/bin/bash
modprobe dummy
ip address add dev dummy0 10.58.249.248/32
ip address add dev dummy0 10.138.65.134/32
    
por 19.08.2018 / 19:44