Wie benutze ich das iPad, um auf den Webserver auf MacBook Air zuzugreifen?

8

Meine Webserver-Software ist Nginx, die auf MacBook Air mit Mac OS X 10.7.5 sehr gut läuft

Wenn ich auf meinem MacBook Air zu http: //myapp.localhost gehe, kann ich perfekt auf meine Website zugreifen, die auf localhost ausgeführt wird.

Wie kann ich von meinem iPad aus auf die Website zugreifen? Ich frage, weil ich testen möchte, ob meine Website dem Tablet den Zugriff auf Desktop-Browser genauso gut ermöglicht.

Ich habe zwei mögliche Setups.

1) MacBook Air mit HUAWEI-MOBILEModem und Verwendung von INTERNET SHARING, um dem iPad den Zugriff zu ermöglichen.

2) wenn sowohl das MacBook Air als auch das iPad auf dieselbe WIFI-Verbindung zugreifen.

Bitte geben Sie Lösungen für beide Szenarien an.

UPDATE: Ich habe mehr als 1 App auf meinem MacBook Air Nginx Webserver.

Nennen wir sie für Bequemlichkeiten

usw.

Wie kann mein iPad auf die richtige Webanwendung zugreifen, die auf meinem MacBook Air gehostet wird?

AKTUALISIEREN

Auf meinem MacBook Air greife ich auf verschiedene Webanwendungen zu, weil ich meine Datei / etc / hosts bearbeitet habe.

Kim Stacks
quelle
1
Sind Sie offen für Lösungen, mit denen Sie verschiedene Ports / mehrere Nginx verwenden können, um die Web-Apps zu isolieren, oder benötigen Sie wirklich eine Instanz und müssen die Dinge nur über die URL isolieren. Ich hatte großes Glück, die Netzwerkkarte zu überlasten, um mehrere IP-Adressen zu haben, und xip.io zu verwenden, um in normalerweise nicht routbare lokale Adressen aufzulösen.
bmike
Ich habe nichts dagegen, die Idee zu hören, @bmike
Kim Stacks

Antworten:

3

In beiden Szenarien erhalten Sie bei Verwendung der IP- oder Maschinennamen-Lokaladresse des Mac nur die Standardwebsite auf diesem Mac. Ihre Web-Apps befinden sich alle auf der obersten Ebene, sodass Nginx in der Anforderung unterschiedliche Hostnamen erwartet. Das Problem ist, dass diese Hostnamen auf .localhost enden, das nicht von DNS aufgelöst wird, sodass das iPad nicht weiß, wo sich myapp2.localhost befindet, und die Anforderung Nginx auf dem Mac nie erreicht.

Sie haben dieses Problem bereits beim Testen vom Mac aus umgangen. Vielleicht haben Sie die Datei / etc / hosts bearbeitet oder haben eine GUI, die das macht? Sie können die iPad-Hosts-Datei jedoch nicht ohne Jailbreak ändern.

Eine einfache Problemumgehung besteht darin, die Standardwebsite in Nginx in die Webanwendung zu ändern, die Sie vom iPad aus testen möchten. Anschließend können Sie die Adresse machinename.local vom iPad aus verwenden. Sie müssen dies jedoch jedes Mal ändern, wenn Sie eine andere Webanwendung testen möchten.

Kompliziertere Problemumgehungen wären: a) Konfigurieren von Apache auf dem Mac als Proxyserver und Konfigurieren des iPad-Browsers, um diesen als Proxy zu verwenden; b) Richten Sie einen DNS-Server in Ihrem lokalen Netzwerk ein. c) Verwenden Sie stattdessen den iPad-Simulator auf dem Mac, während Sie die Datei / etc / hosts ändern. oder d) das iPad jailbreaken und / etc / hosts ändern.

wrk2bike
quelle
1
Verwenden des iPad mit Proxyserver
wrk2bike
Ich möchte nicht Jailbreak oder Emulator verwenden. Ich muss einfach mehrere Apps testen. Ich habe also diese Option, wie in Ihrem Kommentar vorgeschlagen. stackoverflow.com/a/11757977/80353
Kim Stacks
Ich habe jedoch ein Problem. Ich habe das iPad so eingestellt, dass es das Proxy-Handbuch mit der IP-Adresse meines Macbooks und dem von mir verwendeten Port 80 verwendet. Ich kann jedoch immer noch nicht auf myapp1.localhost
Kim Stacks
Oh, tut mir leid, ich habe gerade festgestellt, dass ich meine Charles einschalten und dann den Port auf 8888 setzen muss
Kim Stacks
Ich möchte nur hinzufügen, dass meine persönliche Lösung darin besteht, Charles zu installieren und dann Charles auf meinem MacBook Air zu verwenden. Auf dem iPad werde ich den manuellen http-Proxy aktivieren.
Kim Stacks
3

localhost ist gerätespezifisch. Wenn Sie es also auf Ihrem iPad besuchen, gelangen Sie zu einer Seite auf Ihrem iPad selbst (die wahrscheinlich nicht vorhanden ist).

Verwenden Sie stattdessen die lokale IP-Adresse des Mac, um von Ihrem iPad aus auf eine Seite zuzugreifen, die von Ihrem Mac aus bereitgestellt wird localhost. Öffnen Sie den Netzwerkbereich der Systemeinstellungen, um die lokale IP Ihres Mac abzurufen. Wählen Sie links Ihr aktives Netzwerk aus und die IP wird rechts unter der Überschrift Verbunden angezeigt . Es wird wahrscheinlich etwas sein, das aussieht wie 10.0.1.1oder 127.0.1.1.

Nathan Greenstein
quelle
Gibt es eine Möglichkeit für mich, meinem MacBook Air einen bestimmten Computernamen zuzuweisen, und das iPad kann dann über den Computernamen nachschlagen?
Kim Stacks
Ich habe meine ursprüngliche Frage etwas bearbeitet. Ich habe vergessen zu erwähnen, dass auf meinem MacBook Air mehrere Webapps auf dem Webserver gehostet werden. Wie würde dies Ihre Antwort ändern?
Kim Stacks
@kimsia Ja, Sie können die IP durch ersetzen computerName.local. Siehe diese Antwort . Mehrere Apps ändern die Antwort nicht. Tun Sie einfach das, was Sie normalerweise tun, und ersetzen Sie sie localhostdurch die IP. Also, wenn Sie in der Regel gehen http://localhost:8888/someApp/index.html, gehen Sie zu , http://IPAddress:8888/someApp/index.htmlwo IPAddressdie lokale IP.
Nathan Greenstein
Normalerweise gehe ich zu myapp1.localhost, um auf application1 zuzugreifen , und zu myapp2.localhost, um auf application2 zuzugreifen. Wie funktioniert es für den Zugriff vom iPad?
Kim Stacks
und ich bin mir auch nicht sicher, ob Ihr Vorschlag für Szenario 1 oder 2 oder beides ist?
Kim Stacks
2

Sie können versuchen, den Hostnamen Ihres Mac gefolgt von einem .local einzugeben.

Also, wenn der Name Ihres Computers epsilon ist.

    http://epsilon.local

Wie von Nathan angegeben, würde die IP-Adresse funktionieren. Ersetzen Sie meine Beispiel-IP durch Ihre tatsächliche IP.

    http://192.168.1.1

Sie würden Ihre spezifischen App-Informationen am Ende dieser Adressen hinzufügen. Was auch immer nach dem http: // localhost kommt , wird an das Ende dieser URLs angehängt.

Dhempler
quelle
hat bei mir nicht funktioniert. Ich bin mir nicht sicher warum. Kann ich noch andere Dinge ausprobieren?
Kim Stacks
und ich bin mir auch nicht sicher, ob Ihr Vorschlag für Szenario 1 oder 2 oder beides ist?
Kim Stacks
Dies ist Arbeit, verwenden Sie
unbedingt
-1

Ich denke, das Einfachste ist, die IP-Adresse des Hosts zu erhalten. Führen Sie beispielsweise in der Befehlszeile Folgendes aus:

curl icanhazip.com

Sie erhalten Ihre externen IP-Adressen {unten als $ IP_ADDRESS beschrieben}.

Zeigen Sie dann auf Ihrem iPad einfach mit dem Browser auf diese IP-Adresse:

http://$IP_ADDRESS/
Mark Cohen
quelle
Wie Curl in iPad machen? Hehehe
GusDeCooL
-1
  • Aktivieren Sie die Webfreigabe: Aktivieren Sie die Webfreigabe

  • Stellen Sie Ihre Website hinein ~/Sites

  • Zugriff über URL wie oben angezeigt
Swapnil Godambe
quelle
3
Dies setzt natürlich Lion oder früher voraus, da "Web Sharing" hier in Mountain Lion nicht mehr angezeigt wird.
GEdgar