Ich möchte von einem iOS-Gerät aus auf eine Website und eine API zugreifen, die beide in Docker-Containern hinter einem anderen nginx-Docker-Container (Reverse-Proxy, der SSL verwaltet) ausgeführt werden.
Ich habe also:
1 iOS-Gerät mit IP 192.168.178.57
1 MacBook Pro mit IP 192.168.178.64
1 Docker-Container mit nginx mit zwei server_name
Einstellungen: app.dev
und api.dev
, beide mit selbstsignierten SSL-Zertifikatpunkten /etc/hosts
haben diese Einträge:
192.168.178.64 app.dev
192.168.178.64 api.dev
~/proxy.pac
enthält diese Einträge:
function FindProxyForURL(url, host){
if (shExpMatch(host, "app.dev")) {
return "PROXY app.dev:443; DIRECT";
}
if (shExpMatch(host, "api.dev")) {
return "PROXY api.dev:443; DIRECT";
}
return "DIRECT";
}
Squidman ist auf Port konfiguriert 9090
und erlaubte Clients sind 192.168.178.0/24
.
Die Squidman-Vorlage ermöglicht den Zugriff auflocalhost
# protect web apps running on the proxy host from external users
# http_access deny to_localhost
# rules for client access go here
http_access allow localhost
%HTTPACCESSALLOWED%
192.168.178.64
Der Proxy des iOS-Geräts ist als Port konfiguriert 9090
.
Die MacBooks-Netzwerke Automatic Proxy Configuration
zeigen auf die ~/proxy.pac
Datei.
Ich kann Websites von der iOS-Website wie http://apple.com durchsuchen .
Ich kann https://app.dev durchsuchen und https://api.dev vom MacBook aufrufen.
Ich kann https://app.dev weder durchsuchen noch https://api.dev vom iOS-Gerät aus aufrufen .
Was mache ich falsch?
Ich habe es mit diesem Docker-Container gelöst: https://github.com/jpillora/docker-dnsmasq
Folgen Sie einfach den Anweisungen und fügen Sie eg 127.0.0.1 app.dev
und 127.0.0.1 api.dev
zu Ihrer hinzu /etc/hosts
.
Ändern Sie dann den DNS auf dem macOS- und iOS-Gerät auf 192.168.178.64
(nach der ersten Frage).
[ in der Warteschleife (die Antwort ist unter Umständen richtig, aber manchmal falsch) - im Aufbau ]
iOS hat keine Ahnung, wo und was api.dev und app.dev sind. Die Einträge in der hosts-Datei gelten nur für den lokalen Host.
Da Sie die Hosts-Datei von iOS nicht ändern können, ohne das iOS-Gerät zu jailbreaken, müssen Sie einen DNS-Server (z. B. brew + dnsmasq) auf Ihrem MacBook Pro einrichten und die DNS-Einstellung von iOS darauf verweisen.
Alexander Zeitler
/etc/hosts
aber mit/private/etc/hosts/
hat es auch nicht behoben.klanomath
klanomath
Fahrrad