Wie kann ich einen "doppelten" zugriff erstellen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Ihr habt es bestimmt schon mitbekommen, ich habe keine Ahnung, aber bin lernfähig. Meine Frage.

    Ich habe owncloud mit nginx am laufen, jetz habe ich mal spaßeshalber mir noch den kleinen Bewegungsmelder angeschlossen und wollte diesen über eine Weboberfläche steuern so wie hier beschrieben.
    Wie kann ich es machen, das sich beim Aufruf der IP 192.168.51.25 einerseits https://192.168.51.25 die Cloud meldet und zum anderen die Steuerung des Bewegungsmelders?
    Bitte seit nachsichtig und wenn es machbar ist, bitte eine Erklärung für DUMME Windows-User.


    Andreas

  • Ich kenne mich mit Owncloud nicht sonderlich aus - aber spontan würde ich vorschlagen eine eigene Index zu erstellen und dort dann beides zu verlinken.

    Vermutlich wird dir sofort owncloud angezeigt wenn du https://192.168.51.25 ansurfst, oder?
    Bei nginx bin ich mir selbst grad nicht sicher wie das geregelt ist, ob einfach nur Owncloud's Internetdateien direkt im Ordner /var/www/ liegen, oder ob es eine Konfigurationsdatei für den Webserver gibt... Ich vermute aber mal beides.
    Du müsstest also wenn dann die Konfigurationsdatei /etc/nginx/sites-available/owncloud (o.ä.) bearbeiten und aus "root /var/www/;" machst du dann "root /var/www/owncloud/;"
    Dann kann man auch schon den nginx neu starten damit die Änderung an der Konfigurationsdatei übernommen wird:

    Code
    sudo service nginx restart

    Anschließend musst du ein neues Verzeichnis erstellen, den Besitzer auf www-data ändern und alle bisherigen Dateien in den neuen Ordner verschieben:

    Code
    sudo mkdir /var/www/owncloud
    sudo chown www-data:www-data /var/www/owncloud
    sudo mv /var/www/* /var/www/owncloud/

    mag sein das dort eine Fehlermeldung am Ende kommt, da er das neu erstellte Verzeichnis natürlich nicht in sich selbst verschieben kann - ignorieren.

    Jetzt brauchst du dir nur noch eine eigene index.html oder index.php in /var/www/ anlegen und dort bettest du entweder mithilfe eines iframes beides auf eine Seite ein, oder verlinkst die jeweiligen Teile...

  • Hallo Andreas,
    das Stichwort nachdem Du suchst nennt sich "virtual host". Mit dieser Art der Konfiguration kann ein einzelner Webserver verschiedene Seiten unter verschiedenen URLs bereithalten. Speziell für owncloud finden sich unter den Stichworten "nginx virtual host owncloud" entsprechende How-Tos und auch Konfigurationsbeispiele. Da Du ja sagst, Du wärst lernfähig, solltest Du eigentlich keine grösseren Probleme bei der entsprechenden Umsetzung dieser Tutorials haben. Das verschafft einem auch etwas mehr Einblick in die grundsätzliche Konfiguration von nginx, was sicher auch für die Zukunft von Vorteil ist. Sofern es das ist, was Dir vorschwebt. Ansonsten ist die Lösung von meigrafd ebenfalls sehr schnell umzusetzen und für Einsteiger auch nicht ganz so komplex.

    Einmal editiert, zuletzt von MegaGumbo (1. Dezember 2015 um 17:34)

  • Er möchte aber keine andere URL sondern die selbe. Er will also nicht "https://192.168.51.25/owncloud" oder "https://192.168.51.25/motion" aufrufen sondern es soll alles über "https://192.168.51.25/" funktionieren.

    "virtual host" ist im Grunde auch erst mal nichts anderes als auf ein anderes Verzeichnis (root bei nginx, DocumentRoot bei apache) zu verweisen. Würde er das von dir beschriebene nutzen, müsste er unterschiedliche URL's nutzen.
    Da der Pi i.d.R. nur eine IP hat also auch hier kein Vorteil durch "virtual host". Auch sowas wie "https://motion.raspberrypi" würde denk ich flach fallen. Höchstens "https://motion" und "https://owncloud" wäre diesbezüglich brauchbar, aber im Grunde auch nicht das was er beschrieben hat haben zu wollen :fies: (wie das ginge steht zB hier)

  • Ich habe doch auch nur noch eine weitere, alternative Möglichkeit aufzeigezeigt, der Vollständigkeit halber. Zumal ich ja auch die Richtigkeit Deiner Lösung in keinste Weise anzweifeln oder schlecht machen wollte. Ich hoffe ich habe Dich da jetzt nicht auf dem falschen Fuss erwischt?!

    Einmal editiert, zuletzt von MegaGumbo (1. Dezember 2015 um 18:27)

  • Grundsaetzlich gibt es keine Moeglichkeit, zwei unterschiedliche Inhalte unter exakt derselben Adresse darzustellen - denn irgendwie muss man die ja auseinanderhalten.

    Aber natuerlich kann ein Rechner mehrere Seiten/Anwendungen ausliefern. Die Frage ist, wie man die dann voneinander unterscheidet. Da sehe ich folgende Moeglichkeiten:

    - IP. Zumindest unter Standard-Linux ist es durchaus moeglich, eine Netzwerk"karte" (Anschluss heutzutage) mehrere IP-Adressen zuzuweisen. D.h. du kannst 192.168.51.25 fuer owncloud behalten, und 192.168.51.26 fuer den IR-Kram.
    - Port. Das heisst die IP ist gleich, aber der Port ist anders. Standardmaessig ist der fuer HTTP 80, und darum ist http://192.168.51.25 equivalent zu 192.168.51.25:80. Jetzt koenntest du zB den Apache so konfigurieren, dass er auf Port 8080 lauscht. Dann surfst du den IR-Kram auf http://192.168.51.25:8080 an
    - Pfad. Damit ist die IP und der Port gleich, aber ein bestimmter Pfad fuehrt woanders hin. Also zB http://192.168.51.25 ist owncload, und http://192.168.51.25/ir-kram ist IR-Kram.

    Du wirst dich fuer eine dieser 3 Moeglichkeiten entscheiden muessen - sobald du das getan hast, kann man dann Anleitungen raussuchen.

  • So bin gerade nach Hause gekommen und natürlich vor der "Hausarbeit" an den Rechner und ich sehe Ihr wollt mir alle helfen :danke_ATDE: ich würde sagen mir schwebt Variante 3 vor, momentan rufe ich meine Cloud


    wenn ich jetzt den Ir-Kram wie du es nennst machen will, dann mus ich Apache erstmal installieren und so aufsetzen, dass er auf einem anderen Port "lauscht" und das ist jetzt meine Frage/Problem wie bringe ich Ihm das bei, oder ist das überhaupt machbar? :s


    Andreas

  • Ein und der selbe Webserver kann auf mehreren Ports lauschen. Du musst dafür also nicht extra apache2 installieren ;) Auch dein nginx lauscht bereits auf 2 unterschiedlichen Ports.

    Ist denn das 2. für dich nun die Wahl? Also 2 unterschiedliche Ports?

    Der Standard HTTP port ist 80. Der Standard HTTPS port ist 443. (oder standardisierte Port - bevor sich noch mal jemand über die Wortkombi aufregt...)
    Wenn du also bisher HTTPS aufgerufen hast um Owncloud anzusurfen, wurde Port 443 verwendet.
    Brauchst du für den IR-Kram auch SSL (https) ?

  • Es muss nicht unbedingt https sein, aber sicherer wäre es doch schon. Ja das mit den unterschiedlichen Port's ist glaube ich für mich das beste und leichteste zu realisierende auch wenn ich noch keinen Plan habe wie ich das anfangen soll mit nginx oder Apache

    Andreas

  • Naja das leichteste wären einfach nur unterschiedliche Pfade, denn den HTTPS Port hast du ja bereits eingerichtet auch für externen Zugriff. Zwei Verzeichnisse anlegen, ein paar Dateien kopieren und gut ists - erscheint mir weniger Aufwand zu sein als eine vHost für nginx zu konfigurieren und einen weiteren Port im Router freizugeben :fies:

  • Ich denke nicht, dass der TE einfach nur ein paar Webseiten ausliefert mit dem Apache. Sondern eine entsprechende App, PHP-basiert oder was auch immer. Es geht ja um diese Bewegungsmelder-Geschichte.

    NGINX stattdessen zu benutzen ist also nicht so trivial. Den Apache auf einen anderen Port zu setzen im Gegenzug schon. Wie zB hier eklaert http://www.groovypost.com/howto/apache/c…multiple-ports/, und es findet sich bestimmt noch eine Menge mehr - im Grunde musst du in der httpd.conf nur aus Port 80 Port 8080 (oder welchen auch immer) machen.

  • deets: Er hat bereits nginx, also wieso sollte man dafür 2 verschiedene Webserver nutzen. :-/
    Und je nachdem was er für den Bewegungsmelder verwendet, kann es sein das er nur einen "proxy redirect" benötigt, oder eine Einbettung in ne html, wie es zum Beispiel für motion der Fall wäre denn das läuft unabhängig eines Webservers (standalone).

    Um den "motion" Stream in eine HTML einzubetten brauch man nur folgendes in zB "index.html" eintragen:

    HTML
    <html><head><title>Bewegungsmelder</title></head>
    <body>
      <iframe src="http://127.0.0.1:8081/?action=stream" height="640" width="480" frameborder="0"></iframe>
    </body>
    </html>

    Oder, für ein "nginx proxy redirect" einfach die Datei /etc/nginx/sites-enabled/default bearbeiten und folgendes innerhalb des server { } blocks einfügen:

    Code
    location /motion {
           proxy_pass http://127.0.0.1:8081;
           #proxy_redirect off;
           proxy_set_header Host $host:$server_port;
           proxy_set_header X-Real-IP $remote_addr; 
           #auth_basic "closed site";
           #auth_basic_user_file /etc/nginx/users;
       }

    Die beiden letzten auskommentieren Zeilen wären zur Absicherung auf "openssl passwd -crypt" Basis, wie zB user:UQiO36tBXa102

  • Diese Teile nennen sich PIR. Allerdings bleibt die Frage weiterhin offen ob du das an eine Kamera gekoppelt hast und sowas wie 'motion' nutzt... Ansonsten wär nämlich fraglich was du dir über den Webserver überhaupt anzeigen lassen möchtest :-/ Solche Infos sind wichtig um dir entsprechend sinnvoll helfen zu können

  • Noch ist ja alles in der Phase der Erpobung bei mir auf dem Schreibtisch, die Kamara mit IR liegt noch unangeschlossen daneben, es ist ja alles noch lange nicht fertig, möchte damit meinen Eingangsbereich überwachen und natürlich auch ssehen wer, was, wann und Bedienbar vom Handy aus desshalb den Web-Server. Alles soll auf Bewegung reagieren und auch Aufzeichnen. Habe 2 Sticks a 128 GB drann, einen für die Cloud USB1 und einer soll für die Cam. USB2.

    Andreas

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!