Saya memiliki Server Ubuntu yang saya gunakan sebagai server web. Semuanya berfungsi dengan baik, saya memiliki beberapa situs mengatur. Router saya hanya memungkinkan satu perangkat untuk memiliki IP publik yang merupakan Server Ubuntu saya. Saya mengatur RaspberryPi dengan Kamera dan Gerak. Sekali lagi, semuanya berfungsi dengan baik - Saya dapat mengakses Cam melalui browser (IP: 8081).
Saya ingin menjalankan situs web dari Ubuntu saya dan menampilkan streaming langsung dari raspberry. Ini bekerja dengan baik <img src="IP:8081?action=stream />
. Namun, karena raspberry hanya IP internal, saya tidak dapat melihat aliran ketika saya berada di luar jaringan saya.
Apa yang harus saya lakukan agar Ubuntu saya mengakses raspberry dan umpan balik streaming?
Aplikasi ini didasarkan pada codeigniter dengan cara, gerakan diatur untuk bekerja di luar locahost juga.
Jawaban:
Jadi Anda memiliki server yang mengangkangi dua jaringan (WAN dan LAN) dan Anda ingin mengekspos sesuatu dari LAN pada WAN, sebagai bagian dari konten lain yang dihosting oleh server.
Cara termudah adalah memberi tahu server HTTP Anda untuk mem-proxy koneksi. Sebagian besar server dapat melakukan ini, tetapi saya akan melakukannya dengan Nginx lebih dari yang lain karena itu yang terbaik (tercepat, terkecil, dll, dll). Anda akan menggunakan aturan seperti ini:
Untuk Apache, hal yang sama berlaku ... Anda hanya membuat proksi pembalikan cepat:
Dan kemudian ubah lokasi gambar HTML menjadi:
Sisi jaringan ini seharusnya cukup sederhana tetapi hosting gambar pada webcam mungkin tidak berfungsi dalam tag gambar (beberapa menggunakan MJPEG, beberapa menggunakan javascript) sehingga Anda mungkin perlu menyematkan halaman melalui iframe, atau menulis beberapa javascript baru untuk perbarui gambar (lebih bersih dari iframe tetapi lebih banyak pekerjaan). Jika Anda melakukan ini, Anda mungkin perlu membuka proxy sehingga tidak hanya mencerminkan
/?action=stream
URL.Itu menyulitkan banyak hal. Kita berbicara tentang perangkat keras yang disematkan di sini: yang terkenal kurang diperbarui dan — secara keseluruhan — sangat mudah diretas. Jika Anda perlu membuka proxy hingga pilihan URL yang lebih luas, Anda mungkin juga ingin menambahkan banyak URL eksplisit untuk diblokir untuk menghentikan orang eksternal mendapatkan terlalu banyak akses ke jaringan internal Anda.
Arah lainnya adalah menggunakan PHP dan CodeIgniter ke proksi apa pun yang Anda butuhkan .... Namun aturan umum webdev adalah bahwa jika Anda dapat menghindarinya, jangan ikat bahasa sisi server Anda yang menangani tugas-tugas kasar. Ini adalah sesuatu yang dapat Anda unduh ke server web (atau bahkan tumpukan jaringan - yang saya tidak masuki karena tidak menawarkan keamanan sama sekali).
sumber