Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: harras - 27.07.14 - klo:15.49
-
Kesää!
Ajankuluksi viritellyt Raspberryyn palvelimen. Tarkoitus liittää tuohon useampi ip kamera.
Mokkula yhteydellä saatu Dy.fi:n avulla yhteys auki ja testi sivu aukeaa mukavasti ulko-/sisäverkon kautta.
Viimeinen kanto kaskessa on, ettei ulkoa avaudu testi sivuun sisällytetty videokuva. Sisäverkosta käsin aukeaa hyvin.
Ihan ensimmäinen palvelin viritys kyseessä, joten syy varmasti simppeli.
Voiko syy olla hitaissa yhteyksissä (tuskin), vai onko vika tuossa palvelinsivun osoitteen ohjauksessa toiseen sisäverkon osoitteeseen?
-
Voiko syy olla hitaissa yhteyksissä (tuskin), vai onko vika tuossa palvelinsivun osoitteen ohjauksessa toiseen sisäverkon osoitteeseen?
Miten se on ohjattu? Toimiiko Raspberry välityspalvelimena (proxy) vai lähettääkö se osoitteen selaimeen jollain tavalla? Ensimmäisen tavan pitäisi toimia, mutta toinen ei toimi, koska myös toisen osoitteen pitäisi olla julkinen.
-
Olen sisällyttänyt tuon kameran kuvan verkkosivuun seuraavalla loitsulla:
<img src="http://192.168.1.109:99/snapshot.cgi?&user=Visit&pwd=&t=" onload='setTimeout(function() {src = src.substring(0, (src.lastIndexOf("t=")+2))+(new Date()).getTime()}, 1000)' onerror='setTimeout(function() {src = src.substring(0, (src.lastIndexOf("t=")+2))+(new Date()).getTime()}, 5000)' alt='' />
Siis tuo lan osoite ei ilmeisesti käy, vaan pitäisi siis toteuttaa jotenkin muuten.
Suosituksia?
-
Olen sisällyttänyt tuon kameran kuvan verkkosivuun seuraavalla loitsulla:
<img src="http://192.168.1.109:99/snapshot.cgi?&user=Visit&pwd=&t=" onload='setTimeout(function() {src = src.substring(0, (src.lastIndexOf("t=")+2))+(new Date()).getTime()}, 1000)' onerror='setTimeout(function() {src = src.substring(0, (src.lastIndexOf("t=")+2))+(new Date()).getTime()}, 5000)' alt='' />
Siis tuo lan osoite ei ilmeisesti käy, vaan pitäisi siis toteuttaa jotenkin muuten.
Suosituksia?
Juu, tuo ei käy.
Mitä web-palvelinta käytät? Jos käytät Apachea niin mod_proxy voisi olla ratkaisu:
http://httpd.apache.org/docs/current/mod/mod_proxy.html
http://stackoverflow.com/questions/1997001/setting-up-a-basic-web-proxy-in-apache
Muokkaus: Tuossa olisi siis ihan Raspberrylle kirjoitettu Apachen mod_proxy -ohje: http://www.gavinwill.me.uk/2012/06/raspberry-pi-and-reverse-proxy/
No, joo. Ei kyllä ollut kovin kummonen ohje. Sama mitä perus-Debianille käy. Eli toi a2enmod-komento sieltä ja sitten asetukset voi tehdä ylemmän linkin mukaan. Katotaanpas jos löytäisin jonkun järkevän.
Huonoja ohjeita tähän tarkoitukseen, tässä omat:
Laitetaan mod_proxy käyttöön:
sudo a2enmod proxy
Lisätään omat asetukset Apachelle:
sudo -i leafpad /etc/apache2/httpd.conf
Lisää rivit:
ProxyPass /videot http://192.168.1.109:99/
ProxyPassReverse /videot http://192.168.1.109:99/
Huom. Tuo tiedosto voi olla joku muukin, jos olet tehnyt itse Apacheen säätöjä tai jos Raspberryssä on jotain erilaista Apachen paketoinnissa. En testannut ohjeita erikseen. Lopuksi:
sudo service apache2 reload
Ja vielä korjaa nuo osoitteet tuolta HTML-tiedostosta http://mikaliepalvelin/videot/snapshot.cgi?&user=Visit&pwd=&t=
Jos käytät jotain muuta web-palvelinta, niin todennäköisesti sillä onnistuu sama, mutta pitää etsiä sille omat ohjeet. Eli en sen takia heti alkaisi sitä vaihtamaan, vaan katsotaan sen säädöt ensin.
-
Selvä juttu, kiitoksia.
Hiawatha on käytössä. Proxyt on uutta juttua mulle, joten perehdyn aiheeseen ja tutkin miten asetukset menee Hiawathassa.
Palaan aiheeseen parin päivän sisällä ja kuittaan ratkaistuksi jos lähtee futaamaan.
-
Selvä juttu, kiitoksia.
Hiawatha on käytössä. Proxyt on uutta juttua mulle, joten perehdyn aiheeseen ja tutkin miten asetukset menee Hiawathassa.
Palaan aiheeseen parin päivän sisällä ja kuittaan ratkaistuksi jos lähtee futaamaan.
Se mitä haluat on Reverse Proxy ja Hiawatha (joka on uusi tuttavuus minulle) näkyy sitä tukevan. Netistä löytynee valmiita ohjeitakin.
-
No niin, nyt toimii.
Conffiin yhden rivin lisäys ja kameraan ohjaa sujuvasti :)
Mutta, mutta. Miten tuon saisi niin, että pääsisi kiinni varsinaiselle verkkosivulle ensin?
Alkuperäinen probleemi oli juuri tuo, ettei img src tai href linkki toimi niinkuin ajattelin.
-
No niin, nyt toimii.
Conffiin yhden rivin lisäys ja kameraan ohjaa sujuvasti :)
Mutta, mutta. Miten tuon saisi niin, että pääsisi kiinni varsinaiselle verkkosivulle ensin?
Alkuperäinen probleemi oli juuri tuo, ettei img src tai href linkki toimi niinkuin ajattelin.
Siis minkälainen proxy siellä nyt on? Periaatteessa pitäisi onnistua kun vaihtaa tuon osoitteen siihen proxyn osoitteeseen.
-
Tuossa Hiawathan conffi. Lopussa lisäämäni proxy.
Tämä ohjaa sujuvasti kameraan, mutta miten tuon saisi ohjaamaan ensin web sivulle.
# Hiawatha main configuration file
#
# GENERAL SETTINGS
#
ServerId = www-data
ConnectionsTotal = 250
ConnectionsPerIP = 25
SystemLogfile = /var/log/hiawatha/system.log
GarbageLogfile = /var/log/hiawatha/garbage.log
# BINDING SETTINGS
# A binding is where a client can connect to.
#
Binding {
Port = 80
# Interface = 127.0.0.1
# MaxKeepAlive = 30
# TimeForRequest = 3,20
}
#
#Binding {
# Port = 443
# Interface = ::1
# MaxKeepAlive = 30
# TimeForRequest = 3,20
# SSLcertFile = hiawatha.pem
#}
# BANNING SETTINGS
# Deny service to clients who misbehave.
#
#BanOnGarbage = 300
#BanOnMaxPerIP = 60
#BanOnMaxReqSize = 300
#KickOnBan = yes
#RebanDuringBan = yes
# COMMON GATEWAY INTERFACE (CGI) SETTINGS
# These settings can be used to run CGI applications.
#
#CGIhandler = /usr/bin/perl:pl
#CGIhandler = /usr/bin/php-cgi:php
#CGIhandler = /usr/bin/python:py
#CGIhandler = /usr/bin/ruby:rb
#CGIhandler = /usr/bin/ssi-cgi:shtml
#CGIextension = cgi
#
#FastCGIserver {
# FastCGIid = PHP5
# ConnectTo = 127.0.0.1:2005
# Extension = php
#}
# URL TOOLKIT
# This URL toolkit rule was made for the Banshee PHP framework, which
# can be downloaded from http://www.hiawatha-webserver.org/banshee
#
#UrlToolkit {
# ToolkitID = banshee
# RequestURI isfile Return
# Match ^/(css|files|images|js|slimstat)($|/) Return
# Match ^/(favicon.ico|robots.txt|sitemap.xml)$ Return
# Match .*\?(.*) Rewrite /index.php?$1
# Match .* Rewrite /index.php
#}
# DEFAULT WEBSITE
# It is wise to use your IP address as the hostname of the default website
# and give it a blank webpage. By doing so, automated webscanners won't find
# your possible vulnerable website.
#
Hostname = 127.0.0.1
WebsiteRoot = /var/www/hiawatha
StartFile = index.html
AccessLogfile = /var/log/hiawatha/access.log
ErrorLogfile = /var/log/hiawatha/error.log
#ErrorHandler = 404:/error.cgi
# VIRTUAL HOSTS
# Use a VirtualHost section to declare the websites you want to host.
#
#VirtualHost {
# Hostname = www.my-domain.com
# WebsiteRoot = /var/www/my-domain/public
# StartFile = index.php
# AccessLogfile = /var/www/my-domain/log/access.log
# ErrorLogfile = /var/www/my-domain/log/error.log
# TimeForCGI = 5
# UseFastCGI = PHP5
# UseToolkit = banshee
#
#}
# DIRECTORY SETTINGS
# You can specify some settings per directory.
#
#Directory {
# Path = /home/baduser
# ExecuteCGI = no
# UploadSpeed = 10,2
#}
ReverseProxy .* http://192.168.1.109:99/
Muokkaus (Tomin): Lisätty code-tagit.
-
Tuossa Hiawathan conffi. Lopussa lisäämäni proxy.
Tämä ohjaa sujuvasti kameraan, mutta miten tuon saisi ohjaamaan ensin web sivulle.
Jos tarkoitat ettet nyt nää tuota Raspberryllä olevaa nettisivua, niin se johtuu ReverseProxyn säädöistä. Nyt se ohjaa kaikki pyynnöt tuonne kameralle. Eli tuota ReverseProxy riviä pitää vähän säätää.
Hiawathan man-sivulta:
ReverseProxy [!]<pattern> http[s]://<hostname>[:<port>][/<path>] [<timeout>] [keep-alive]
Forward the request with URLs that match the regular expression <pattern> to another webserver, where
<path> is placed before the original URL. Note that the reverse proxy selection comes before the URL toolkit
handling. When <hostname> is an IP address, the value of the Host HTTP header is unchanged. Otherwise, it is
replaced with the value of <hostname>. The connection is closed after <timeout> seconds, which is set to 5
seconds by default. By default, Hiawatha doesn't use keep-alive connections to the final webserver. You can
enable this by adding 'keep-alive' to the configuration line.
Example: ReverseProxy ^/icons http://resources.lan/images
Eli tuo .* pitää muuttaa joksikin muuksi. Ehkä seuraava rivi toimisi paremmin:
ReverseProxy ^/snapshot.cgi http://192.168.1.109:99/snapshot.cgi
Muokkaus: Mietin tuota asetusriviäni ja tein siihen korjauksen, en tiedä toimisiko se nyt paremmin.
-
Hiukan kädestä pitäen ohjaamiseksi menee :-\
Tuolla viilauksella ei kameraan mene, muuten kuin sisäverkosta.
Raspberryn verkkosivulla on siis yksinkertainen linkki:
<a href="http://192.168.1.109:99">Visit </a>
Jos tuohon laittaa xxxx.xxxx.dy.fi osoitteen ei se tietty mitään muuta. Ohjaa takaisin samalle sivulle.
Entä jos otan toisen osoitteen esim. yyyy.yyyy.dy.fi ja osoitan sille saman ip:n. Tämän uuden osoitteen jos laitan tuohon linkkiin (ja muokkaan proxyn tälle), voisiko näin toimia?
Entä palomuuri, nyt auki 80 ja 99.
Kuten huomaat, aika perusasioiden äärellä olen....
-
Kokeilin tuota toisen domainin käyttöä ja sillä tuntuu toimivan toivotusti.
Eli pääsen ulkoa verkkosivulle ja sieltä linkillä kameraan.
No tämä ajaa asiansa, mutta viritykseltä tuntuu. Jokaiselle ip kameralle oma domain,
onko näin?
-
Voisit laittaa myös niin, että osoitteet ovat
Nettisivu: xyz.dy.fi
Kamera1: xyz.dy.fi/kamera1/
Kamera2. xyz.dy.fi/kamera2/
jne.
Ja sitten proxyt pitäisi määrittää jotenkin näin:
ReverseProxy ^/kamera1 http://kamera1nosoite:99/
ReverseProxy ^/kamera2 http://kamera2nosoite:99/
jne.
Ja nyt kamera1:n jutut löytyvät osoitteella: http://xyz.dy.fi/kamera1/ ja toinen kamera sitten vastaavasti. Mielestäni ei ole mitään syytä miksi olisi pakko käyttää erillisiä domaineja.
Myöskään useampia portteja ei tarvitse pitää auki, koska nythän tuo proxy "siirtää" niiden liikenteen portista 99 porttiin 80 (HTTP). Ja sitä ei siis määritellä sinne nettisivulle silloin.
Tämän voisi toki tehdä niinkin, että laittaisi porttiohjaukset niin, että kameroille menisi niiden omat portit (esim. tuo 99 ja siitä ylöspäin), jolloin voisi määritellä osoitteen käyttämällä sitä nettisivun osoitetta ja porttia eli esim. http://xyz.dy.fi:99/ .
-
Heti en noilla ohjeillasi saanut toimimaan, mutta homma pelaa toisen domainin avulla toivotusti.
Täytyy vielä tutkia tuota Hiawathan conffia ajan kanssa, eiköhän se sieltä ratkea.
Suurkiitos opastuksesta!