jak korzystać z iPada, aby uzyskać dostęp do serwera WWW na MacBooku Air

8

moim oprogramowaniem serwera WWW jest nginx, który działa bardzo dobrze na MacBooku Air przy użyciu Mac OS X 10.7.5

kiedy idę do http: //myapp.localhost na moim MacBooku Air, mogę doskonale uzyskać dostęp do mojej witryny, która działa na localhost.

jak mogę uzyskać dostęp do strony internetowej z mojego iPada? Pytam, ponieważ chcę przetestować, czy moja witryna umożliwia równie dobry dostęp tabletu w przeglądarkach komputerowych.

mam dwie możliwe konfiguracje.

1) Macbook Air z uruchomionym HUAWEI-MOBILEModem i korzystający z INTERNET SHARING, aby umożliwić dostęp do iPada.

2) gdy zarówno MacBook Air, jak i iPad uzyskują dostęp do tego samego połączenia WIFI.

Podaj rozwiązania dla obu scenariuszy.

AKTUALIZACJA: Mam więcej niż 1 aplikację działającą na moim serwerze MacBook Air Nginx.

dla wygody zadzwońmy do nich

itp.

Jak mój iPad może uzyskać dostęp do właściwej aplikacji internetowej hostowanej na moim MacBooku Air?

AKTUALIZACJA

na moim MacBooku Air uzyskuję dostęp do różnych aplikacji internetowych, ponieważ edytowałem plik / etc / hosts.

Kim Stacks
źródło
1
Czy jesteś otwarty na rozwiązania, które pozwalają używać różnych portów / wielu nginx do izolowania aplikacji internetowych, czy naprawdę potrzebujesz jednej instancji i musisz izolować rzeczy tylko za pomocą adresu URL. Miałem wielkie szczęście, przeciążając kartę sieciową, aby mieć wiele adresów IP, i używając xip.io do rozwiązania normalnie niemożliwych do routingu adresów lokalnych.
bmike
nie mam nic przeciwko usłyszeniu pomysłu, @bmike
Kim Stacks

Odpowiedzi:

3

W obu przypadkach użycie adresu IP lub machinename.lokalny adres komputera Mac zapewni tylko domyślną witrynę internetową na tym komputerze Mac. Twoje aplikacje internetowe są na najwyższym poziomie, więc Nginx oczekuje różnych nazw hostów w żądaniu. Problem w tym, że te nazwy hostów kończą się na .localhost, który nie jest rozpoznawany przez DNS, więc iPad nie wie, gdzie jest myapp2.localhost, a żądanie nigdy nie dociera do Nginx na Macu.

W jakiś sposób omijałeś już ten problem podczas testowania z komputera Mac. Może edytowałeś plik / etc / hosts lub masz GUI, który to robi? Nie można jednak modyfikować pliku hostów iPada bez łamania jailbreak.

Prostym obejściem jest zmiana domyślnej strony internetowej w Nginx na aplikację internetową, którą chcesz przetestować z iPada - wtedy możesz użyć adresu machinename.local z iPada. Ale musisz to zmienić za każdym razem, gdy chcesz przetestować inną aplikację internetową.

Bardziej skomplikowanym obejściem byłoby: a) skonfigurowanie Apache na komputerze Mac jako serwera proxy i skonfigurowanie przeglądarki iPada, aby używała tego jako serwera proxy; b) skonfigurować serwer DNS w sieci lokalnej; c) zamiast tego użyj symulatora iPada na komputerze Mac, modyfikując plik / etc / hosts; lub d) jailbreak iPada i modyfikacja / etc / hosts.

wrk2bike
źródło
1
Używanie iPada z serwerem proxy: stackoverflow.com/questions/6917107/…
wrk2bike
nie chcę jailbreak ani używać emulatora. muszę łatwo przetestować wiele aplikacji. więc pozostaję z tą opcją, jak sugeruje twój komentarz. stackoverflow.com/a/11757977/80353
Kim Stacks
jednak mam problem. ustawiłem iPada, aby używał instrukcji proxy z adresem IP mojego macbooka i portu, którego używam 80. ale nadal nie mogę uzyskać dostępu do myapp1.localhost
Kim Stacks
o, przepraszam, właśnie zdałem sobie sprawę, że muszę włączyć mój Charles, a następnie ustawić port na 8888
Kim Stacks
Chcę tylko dodać, że moim osobistym rozwiązaniem jest zainstalowanie Charlesa, a następnie użycie go na moim MacBooku Air. Na iPadzie włączę ręczne proxy HTTP.
Kim Stacks
3

localhost zależy od urządzenia, więc odwiedzenie go na iPadzie prowadzi do strony na iPadzie (prawdopodobnie nie istnieje).

Aby uzyskać dostęp do strony wyświetlanej z komputera Mac z iPada, użyj lokalnego adresu IP komputera Mac zamiast localhost. Aby uzyskać lokalny adres IP komputera Mac, otwórz panel Sieć w Preferencjach systemowych. Wybierz swoją aktywną sieć po lewej, a adres IP zostanie wyświetlony po prawej stronie pod nagłówkiem Połączone . Prawdopodobnie będzie to coś, co wygląda 10.0.1.1lub 127.0.1.1.

Nathan Greenstein
źródło
czy istnieje sposób, aby przypisać konkretną nazwę komputera do mojego MacBooka Air, a następnie iPad może wyszukiwać za pomocą nazwy komputera?
Kim Stacks,
Trochę zmodyfikowałem swoje oryginalne pytanie. Zapomniałem wspomnieć, że na moim komputerze MacBook Air mam wiele aplikacji internetowych hostowanych na serwerze. jak to zmieni twoją odpowiedź?
Kim Stacks,
@kimsia Tak, możesz zamienić adres IP na computerName.local. Zobacz tę odpowiedź . Wiele aplikacji nie zmienia odpowiedzi, po prostu rób to, co robisz normalnie i zastępuj adresem localhostIP. Tak więc, jeśli normalnie iść do http://localhost:8888/someApp/index.html, iść do http://IPAddress:8888/someApp/index.htmlgdzie IPAddressjest lokalny IP.
Nathan Greenstein,
zwykle przechodzę do myapp1.localhost, aby uzyskać dostęp do application1 i myapp2.localhost, aby uzyskać dostęp do application2. więc jak działa dostęp do iPada?
Kim Stacks
a także nie jestem pewien, czy twoja sugestia dotyczy scenariusza 1 lub 2, czy obu?
Kim Stacks
2

Możesz spróbować wpisać nazwę hosta komputera Mac, a następnie nazwę lokalną.

Więc jeśli nazwa twojego komputera to epsilon.

    http://epsilon.local

Jak stwierdził Nathan, adres ip działałby. Zastąp mój przykładowy adres IP faktycznym adresem IP.

    http://192.168.1.1

Na końcu tych adresów dodasz określone informacje o aplikacji. Więc to, co kiedykolwiek nastąpi po http: // localhost , zostanie dołączone na końcu tych adresów URL.

rozrzutnik
źródło
nie działało dla mnie. nie jestem pewien dlaczego. jakieś inne rzeczy, których mogę spróbować?
Kim Stacks
a także nie jestem pewien, czy twoja sugestia dotyczy scenariusza 1 lub 2, czy obu?
Kim Stacks
To jest praca, pamiętaj, aby użyć http, a następnie adresu IP
GusDeCooL
-1

Myślę, że najłatwiej jest uzyskać adres IP hosta. Na przykład w wierszu polecenia uruchom to:

curl icanhazip.com

Otrzymasz swój zewnętrzny adres IP {opisany poniżej jako $ IP_ADDRESS}.

Następnie na iPadzie po prostu skieruj przeglądarkę na ten adres IP:

http://$IP_ADDRESS/
Mark Cohen
źródło
Jak zrobić curl w iPadzie? Hehehe
GusDeCooL
-1
  • Włącz udostępnianie sieciowe: Włącz udostępnianie sieciowe

  • Umieść swoją stronę internetową w środku ~/Sites

  • Dostęp przez adres URL, jak pokazano powyżej
Swapnil Godambe
źródło
3
Oczywiście zakładamy, że Lion lub wcześniej, ponieważ „Udostępnianie w sieci” nie pojawia się już tutaj w Mountain Lion.
GEdgar