Ubuntu Server com Raspberry Pi Motion Camera

3

Eu tenho um servidor Ubuntu que eu uso como servidor web. Tudo funciona muito bem, tenho vários sites configurados. Meu roteador permite que apenas um dispositivo possua o IP público, que é o meu Ubuntu Server. Eu configurei um RaspberryPi com uma câmera e movimento. Mais uma vez, tudo funciona muito bem - eu posso acessar o Cam através de um navegador (IP: 8081).

Eu quero criar um site do meu Ubuntu e exibir uma transmissão ao vivo do framboesa. Isso funciona muito bem com <img src="IP:8081?action=stream /> . No entanto, como o framboesa é somente IP interno, não consigo ver o fluxo quando estou fora da minha rede.

O que eu preciso fazer para que meu Ubuntu acesse o framboesa e envie feedback para o fluxo?

O aplicativo é baseado no codeigniter, a propósito, o motion é configurado para funcionar fora do locahost também.

    
por sixtynine 12.05.2014 / 10:58

1 resposta

1

Portanto, você tem um servidor que abrange duas redes (WAN e LAN) e deseja expor algo da LAN na WAN, como parte de outro conteúdo que o servidor hospeda.

A maneira mais fácil é dizer ao seu servidor HTTP para fazer proxy na conexão. A maioria dos servidores pode fazer isso, mas eu faria isso com Nginx sobre qualquer outra coisa, porque é o melhor (mais rápido, menor, etc, etc). Você usaria uma regra assim:

location /webcam/ {
    proxy_pass http://internal_webcam_IP:8081/?action=stream;
}

Para o Apache, o mesmo vale ... Você acabou de criar um proxy reverso rápido:

ProxyRequests off
ProxyPass /webcam http://internal_webcam_IP:8081/?action=stream

Em seguida, altere a localização da imagem HTML para:

<img src="/webcam/" />

O lado da rede deve ser bastante simples, mas a imagem hospedada na webcam pode não funcionar em uma tag de imagem (alguns usam MJPEG, alguns usam javascript), portanto, talvez seja necessário incorporar uma página por meio de um iframe ou escrever novo javascript para atualizar a imagem (mais limpo que o iframe mas mais trabalho). Se você fizer isso, talvez seja necessário abrir o proxy para que ele não esteja apenas espelhando a URL /?action=stream .

Isso complica as coisas. Estamos falando de hardware embarcado aqui: notoriamente sub-atualizado e - no todo - infamevelmente fácil de hackear. Se você precisar abrir o proxy até uma seleção mais ampla de URLs, provavelmente também desejará adicionar uma carga de URLs explícitos a serem bloqueados para impedir que pessoas externas obtenham muito acesso à sua rede interna.

A outra direção é usar PHP e CodeIgniter para representar o que você precisa .... No entanto, uma regra geral do Webdev é que, se você puder evitá-lo, não amarre seu linguagem de servidor lidando com tarefas domésticas. Isso é algo que você pode descarregar no servidor da Web (ou até mesmo na pilha de rede - na qual não estou entrando porque não oferece segurança nenhuma).

    
por Oli 12.05.2014 / 11:08