
Ich habe mehrere Staging- und Testserver, für deren Zugriff ich meine Hosts-Datei ständig ändern muss (sie hängen vom Domänennamen ab, daher muss ich die Hosts-Datei ändern, damit sie funktionieren).
Ich finde das ärgerlich. Ich möchte für jede Art von Site, mit der ich arbeiten möchte, einen portablen Browser einrichten. Gibt es eine Version eines grafischen Webbrowsers (einschließlich Browser, die auf den Rendering-Engines anderer Browser basieren), die dies kann?
Auf diese Weise kann ich einfach die Instanz starten, die bereits für die Arbeit mit Staging konfiguriert ist, wenn ich Staging testen möchte.
Irgendwelche Ideen?
BEARBEITEN:Die wichtige Funktion besteht in der Möglichkeit, zwei Browser gleichzeitig auszuführen, die beide zu navigieren some-address.com
, wobei jedoch ein Browser die Anforderungen an den Server unter 1.2.3.4
und der andere Browser die Anforderungen an den Server unter weiterleitet 5.6.7.8
.
BEARBEITEN:(16.03.14)
Diese Frage wurde vor mehreren Jahren gestellt und ich kenne immer noch keine vernünftige Methode, dies zu tun. Ich werde versuchen, es näher zu erklären, da die Leute das Problem anscheinend missverstehen. Es ist nicht etwas, das sich einfach durch die Verwendung eines Proxyservers beheben lässt. Ich nehme an, dass es möglich sein könnte, umfangreiche Regeln in einen Proxyserver zu schreiben, um die Probleme zu lösen, aber das ist eine enorme, komplexe Lösung für ein eigentlich einfaches Problem.
Also zur Klarstellung:
Es gibt drei Webserver: Produktion, Test und Entwicklung. Auf jedem läuft eine Multi-Tenant-Anwendung, die sich anhand des Hostnamens, der für den Zugriff verwendet wird, anpasst. Konzeptionell ähnelt dies einem Content Management System oder einer Blog-Engine, mit der mehrere Websites auf derselben Serverinstanz ausgeführt werden können. Sie richten den Hostnamen einfach auf den Server, und der Hostname, der für den Zugriff über die HTTP 1.1-Hostnamenzuordnung verwendet wird, ist die Site, die angezeigt wird.
Jede Lösung, die einfach die Hostdatei neu schreibt, funktioniert nicht, da mehrere Browserfenster gleichzeitig auf den verschiedenen Websites (Produktion, Entwicklung, Test usw.) ausgeführt werden müssen. Daher funktioniert das ständige Ändern der Hostdatei nicht, da dies alle Browserinstanzen betrifft. Wenn Sie die Zuordnung für einen Browser ändern, werden die anderen Browser jetzt auch diesem Server zugeordnet, sodass alle nachfolgenden Anforderungen an den falschen Server gehen.
Ich suche lediglich nach einer Möglichkeit, diese Browserinstanz zu zwingen, diese Hostdatei zu verwenden, und jene Browserinstanz, jene Hostdatei zu verwenden, beispielsweise über einen Befehlszeilenparameter. Es ist mir sogar egal, ob ich mehrere Kopien des Browsers installieren muss.
Mit Firefox Portable ist das vielleicht machbar, da es, glaube ich, pro installierter Kopie seine eigenen Konfigurationsdateien verwendet. Das Problem besteht jedoch darin, dass die zur Verwaltung der Sites verwendete Drittanbietersoftware nicht mit Firefox funktioniert (die Sites selbst funktionieren schon, die Verwaltungstools jedoch nicht. Mit Chrome, IE und Opera funktionieren sie jedoch einwandfrei … und ich habe keinen Zugriff auf den Quellcode, um das Problem zu beheben).
Antwort1
Squid hat das Problem für mich gelöst. Ich denke, viele Proxyserver könnten das auch.
Konkret musste ich Squid installieren. Dann musste ich die Datei squid.conf so ändern, dass sie auf eine alternative Hosts-Datei zugreift. Dies ist die Zeile, die Sie ändern müssen:
#hosts_file /etc/hosts
In meinem Fall habe ich verwendet hosts_file /etc/hosts-squid
. Ich habe die /etc/hosts-squid
Datei erstellt und die Datei hosts-squid so geändert, dass sie mir Zugriff auf die neuen IP-Adressen gibt, die ich für die angegebene URL haben wollte. Das war alles, was ich tun musste, um den Squid-Proxyserver zu konfigurieren.
Anschließend habe ich einen Befehl zum Starten meines Browsers mit den Proxy-Einstellungen erstellt. Ich habe Folgendes verwendet:
chromium-browser --proxy-server=localhost:3128
Durch Ausführen dieses Befehls erhalte ich effektiv eine laufende Instanz von Chromium, die auf die Domänen zugreifen kann, die in der von mir erstellten Hosts-Squid-Datei eingerichtet sind.
Ich konnte auch mehrere Proxy-Server mit mehreren Instanzen von Squid einrichten, um auf eine Produktions-, Entwicklungs- und lokale Website zuzugreifen, alles auf demselben Computer. Anweisungen zum Ausführen mehrerer Squid-Instanzen finden Sie unterHierIch habe auch eineBlogeintragErklären Sie das Problem und die Lösung etwas genauer.
Antwort2
Ich glaube, Sie möchten für jeden Browser eine virtuelle Umgebung einrichten, die eine eigene Hosts-Datei enthält.
Eine Lösung könnte darin bestehen,Sandboxieum eine separate Sandbox einzurichten, die jeweils ihre eigene Hosts-Datei enthält. Der Browser muss nicht in der Sandbox installiert werden, um die Hosts-Datei zu verwenden, sondern muss nur aus dieser Sandbox heraus gestartet werden. Zum Starten des Browsers aus der Sandbox heraus können Desktopverknüpfungen erstellt werden.
Der Nachteil besteht darin, dass die Browser beispielsweise beim Herunterladen von Dateien aus dem Internet vom tatsächlichen Dateisystem isoliert werden. Sandboxie verfügt jedoch über Mechanismen zum Kopieren solcher Dateien außerhalb der Sandbox.
Leider ist die Funktion, Programme gleichzeitig in mehreren Sandboxen laufen zu lassen, nur in der kostenpflichtigen Version von Sandboxie verfügbar (15 Euro zzgl. MwSt. für eine einjährige Lizenz für den privaten Gebrauch zu Hause). Machbarkeitstests können mit der kostenlosen Version durchgeführt werden. (Bearbeiten: Sandboxie ist jetzt Freeware.)
Für Linux-Benutzer gibt es folgende ähnliche Produkte:
Antwort3
Sie können den Prozess der Änderung der Hostdatei automatisieren mit Firefox + HostAdmin
HostAdmin ist ein Firefox-Add-on, mit dem Sie die Hosts-Datei ändern und die Domänen-IP-Zuordnung ändern können. HostAdmin kann Ihre Hosts-Datei über eine erweiterte Hosts-Dateisyntax verstehen. Darüber hinaus aktualisiert HostAdmin Ihren DNS-Cache automatisch, wenn Sie Ihre Hosts-Datei ändern, sogar manuell.
Beispielkonfiguration
#==== Project 1
# 127.0.0.1 localhost1
127.0.0.1 localhost2
127.0.0.1 localhost3
#====
#==== Project 2
# 127.0.0.1 localhost1
# 127.0.0.1 localhost2
# 127.0.0.1 localhost3
Mehr Infos unterhttps://addons.mozilla.org/en-US/firefox/addon/hostadmin/
Mehrere Instanzen
Um zwei Instanzen des Firefox-Browsers gleichzeitig und unabhängig voneinander unter Linux auszuführen, erstellen Sie mit dem folgenden Skript mehrere Launcher. Installieren Sie das Plugin auch in allen Firefox-Versionen.
Firefox 1
#!/bin/bash
th="/home/$USER/tmp/p1"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote
Firefox 2
#!/bin/bash
th="/home/$USER/tmp/p2"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote
Mit der Profiloption ( firefox -P
) in einem Browser können Sie native Profile für unterschiedliche Einstellungen nutzen und diese gleichzeitig verwenden.
Antwort4
Privoxykönnen hierfür verwendet werden.