Kendi ana bilgisayar dosyasına sahip tarayıcı?


36

Anasistem dosyamı erişmek için sürekli olarak değiştirmek zorunda olduğum birkaç basamaklandırma ve test sunucum var (etki alanı adına bağlı, bu yüzden çalışmasını sağlamak için barındırma dosyasını değiştirmem gerekiyor).

Bu can sıkıcı buluyorum. Çalışmak istediğim her tür site için bir tür taşınabilir tarayıcı kurmak istiyorum. Bunu yapacak herhangi bir grafik web tarayıcısının (diğer tarayıcıların görüntü oluşturma motorlarını temel alan tarayıcılar dahil) herhangi bir sürümü var mı?

Bu şekilde, sahnelemeyi test etmek istersem, sahneleme ile çalışmak için önceden yapılandırılmış olan örneği başlatabilirim.

Herhangi bir fikir?

DÜZENLEME: önemli özelliği concurently iki tarayıcıyı çalıştırabilir yeteneği, hem tarama olduğunu some-address.com, ancak bir sunucuya reqests yönlendiren tarayıcı ile 1.2.3.4ve en sunucusuna isteklerini yönlendiren diğer tarayıcısı 5.6.7.8.

EDIT: (3/16/14)

Bu soru birkaç yıl önce soruldu ve hala bunu yapmanın uygun bir yolunu bilmiyorum. Daha fazla açıklamaya çalışmama izin verin, çünkü insanlar sorunu yanlış anlıyor gibi görünüyor. Sadece bir proxy sunucusu kullanarak kolayca düzeltilebilecek bir şey değil. Sanırım sorunları çözmek için bir proxy sunucusuna kapsamlı kurallar yazmak mümkün olabilir, ancak bu basit bir sorunun ne olması gerektiği konusunda çok karmaşık bir çözüm.

Netleştirmek için:

Üç web sunucusu var. Üretim, Test ve Geliştirme. Her biri, erişmek için kullanılan ana bilgisayar adına bağlı olarak kendini özelleştiren çok kiracılı bir uygulamayı çalıştırır. Kavramsal olarak, bu aynı sunucu örneğinden birden fazla sitenin çalıştırılmasına izin veren bir İçerik Yönetim Sistemine veya blog motoruna benzer. Sadece ana makine adını sunucuya yönlendirirsiniz ve hangi ana bilgisayar adı HTTP 1.1 ana bilgisayar adı eşlemesiyle erişmek için kullanılırsa, görüntülediği sitedir.

Ana bilgisayar dosyasını basitçe yeniden yazan herhangi bir çözüm, aynı anda birden fazla tarayıcı penceresini farklı sitelere, üretim, geliştirme, test, vb. Çalıştırma zorunluluğu nedeniyle çalışmaz. çalış, çünkü tüm tarayıcı örneklerini etkiler. Bir tarayıcı için eşlemeyi değiştirirseniz, o zaman diğer tarayıcılar da o sunucuya eşlenir, böylece sonraki istekler yanlış sunucuya gider.

Tek istediğim, bu tarayıcı örneğini bu ana dosyayı kullanmaya zorlayan bir yol ve bu tarayıcı örneğini de bir komut satırı parametresi gibi bu ana bilgisayar dosyasını kullanmaya zorlamak. Tarayıcının birden fazla kopyasını kurmam gerekip gerekmediği bile umrumda değil.

Bu, yüklü olan her kopya için kendi yapılandırma dosyalarını kullandığını düşündüğüm için firefox portable ile yapılabilmektedir, ancak sorun, siteleri yönetmek için kullanılan üçüncü taraf yazılımların firefox ile çalışmamasıdır (sitelerin kendileri çalışır, ancak yönetici araçları). Ancak, onlar chrome ve IE ve Opera ile iyi çalışırlar, ancak .. ve bunu düzeltmek için kaynağa erişimim yok).


Durumunuzdaki çoğu insan, farklı HOSTS konfigürasyonlarına sahip bir çift WinXP veya Ubuntu sanal makinesi kullanıyor.
digitxp

@digitxp - Evet, bunu çoktan düşünmüştüm ama gerçekten birden fazla VM'nin ve birkaç işletim sisteminin tamamının sadece birkaç siteye göz atmasını istemiyorum. Açıkçası, başka bir seçenek yoksa muhtemelen yapmak zorunda kalacağım şey bu ..
Erik Funkenbusch

Diğerleri başarısız olursa: Fiddler Web Hata Ayıklayıcı (Windows) veya GlimmerBlocker ve Charles Web Hata Ayıklama Proxy'si (Mac) anında istekleri yeniden yazabilir ...
Arjan

@Arjan - Proxy'ler bir dereceye kadar çalışacak, ancak her tarayıcı örneği için ayrı bir proxy örneğine sahip olmam veya her seferinde proxy ayarlarını değiştirmem gerekir; bu da değişen ana bilgisayar dosyalarını daha da sinirlendirir.
Erik Funkenbusch,

1
Belki de kalamar gibi bir Web Proxy, DNS çözümlemesinden istediğinizi yapacak şekilde yönlendirmenize izin verir mi? (elbette bir web proxy'si tarayıcı bazında yapılandırılabilir)
barlop

Yanıtlar:


19

Kalamar benim için sorunu çözdü. Birçok proxy sunucusunun da aynı şeyi yapabileceğini düşünüyorum.

Özellikle, Squid'i kurmak zorunda kaldım. Sonra squid.conf dosyasını değiştirerek alternatif bir ana makine dosyasına erişmesini sağlayın. Değiştirmek istediğiniz satır budur:

#hosts_file /etc/hosts

Benim durumumda kullandım hosts_file /etc/hosts-squid. /etc/hosts-squidDosyayı yarattım ve hosts-squid dosyasını, verilen URL için istediğim yeni IP adreslerine erişmemi sağlayacak şekilde değiştirdim. Squid proxy sunucusunu yapılandırmak için tek yapmam gereken buydu.

Daha sonra tarayıcımı proxy ayarlarıyla başlatmak için bir komut oluşturdum. Kullandım:

chromium-browser --proxy-server=localhost:3128

Bu komutu çalıştırmak bana, yarattığım hosts-squid dosyasındaki domain ayarlarına erişebilecek çalışan bir krom örneği veriyor.

Aynı bilgisayarda, bir üretim, geliştirme ve yerel web sitesine erişmek için birden fazla Squid örneği kullanarak daha fazla proxy sunucusu kurabildim. Birden fazla Squid örneğinin nasıl çalıştırılacağına dair talimatlar burada . Ayrıca sorunu ve çözümü biraz daha ayrıntılı olarak açıklayan bir blog yazısı da yazdım .


8

Kendi ana bilgisayar dosyasını içeren her tarayıcı için sanal bir ortam oluşturmak istediğinizi düşünüyorum.

Çözümlerden biri , her biri kendi ana bilgisayar dosyasını içeren ayrı bir sanal alan ayarlamak için Sandboxie kullanmak olabilir . Ana bilgisayar dosyasını kullanmak için tarayıcının sanal alana yüklenmesi gerekmez, bu sanal alanın içinden yeni başlayın. Tarayıcıyı sanal alanın içinden başlatmak için masaüstü kısayolları oluşturulabilir.

Dezavantajı, örneğin İnternet'ten dosya indirirken tarayıcıların gerçek dosya sisteminden izole edileceği, ancak Sandboxie'nin bu dosyaları sanal alanın dışına kopyalamak için mekanizmalar içermesi olacaktır.

Maalesef, programları aynı anda birden fazla sanal alanda çalıştırma özelliği, yalnızca Sandboxie'nin ücretli sürümünde mevcuttur (evde kişisel kullanım için bir yıllık lisans için 15 Euro artı vergi). Fizibilite testi ücretsiz versiyon kullanılarak yapılabilir.

Linux kullanıcıları için benzer ürünler:


Geç cevap harrymc için özür dilerim. Programın %SYSTEM32%/Drivers/etc/hostsWindows ve /etc/hostsLinux'ta olduğu gibi sanal alan başına sistem dosyaları sağlamasına izin verip vermediği açık değildir . Onaylayabilir misin? Linux versiyonunu tercih ederim çünkü birkaç yıl önce Windows'ta Sandboxie'nin hızlı bir güvenlik değerlendirmesini yaptım (başarısız oldu ve yazara gelen raporlar cevapsız kaldı).
jww

Sandboxie gibi sanal alan başına sistem dosyalarını destekliyorsa %SYSTEM32%/Drivers/etc/hosts, puan sizindir. İşletim sistemi belirsizdi ve Windows / Sandboxie çalışırsa, bunları saklamanız adil değil.
jww

AFAIK Sandboxie tamamen paralel bir dosya sistemi ve kayıt defteri oluşturur. Linux için basit bir kum programıdır arkoz ya da belki sandfox ama onlarla hiçbir deneyimim var.
harrymc

Teşekkürler harrymc. Sana puanları vermekte zorlanıyorum. +50'lik bir kutu görüyorum, ancak üzerine tıklayamıyorum. Artı, 100 değerinde olduğunu düşündüm. Herhangi bir fikir (ya da Meta'ya gitmeye ihtiyacım var)?
jww

Ödül SSS bölümüne bakınız : 100'ün ödülünde, bir cevap 7 + 1 gün sonra belirlenmiş cevap olmadan otomatik olarak ödüllendirildi, bir yarısı kaybedildi.
harrymc

4

Host dosyası değiştirme işlemini firefox + HostAdmin ile otomatikleştirebilirsiniz.

HostAdmin, Hosts dosyasını değiştirmenize, etki alanı ip eşlemesini değiştirmenize yardımcı olan bir Firefox Eklentisidir. HostAdmin, Hosts dosyanızı, gelişmiş bir Hosts dosyası sözdizimi aracılığıyla anlayabilir. Ek olarak, HostAdmin, Hosts dosyanızı her ne zaman manuel olarak değiştirseniz, DNS önbelleğinizi otomatik olarak yeniler.

Örnek yapılandırma

#==== 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  

Https://addons.mozilla.org/en-US/firefox/addon/hostadmin/ adresinde daha fazla bilgi bulabilirsiniz.

Çoklu örnek

Firefox tarayıcısının iki örneğini linux'ta tutarlı ve bağımsız bir şekilde çalıştırmak için aşağıdaki komut dosyasıyla birden fazla başlatıcı oluşturun. Ayrıca eklentiyi tüm firefox'a yükleyin.

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  

firefox -PFarklı ayarlarda yerel profilleri kullanmak için tarayıcıdaki profile seçeneğini ( ) kullanabilir ve aynı anda kullanabilirsiniz.


1
Aynı anda 2 host dosyasını kullanarak 2 tarayıcı soruyor .
harrymc


@ harrym c güncellendi.
totti

2

İstediğiniz şeyin bu olmadığını biliyorum, ancak geçici bir çözüm, ana bilgisayar dosyalarını değiştirmek için toplu bir komut dosyası yazmak ve ardından tarayıcıyı açmak olabilir.

En azından yaptığınız işi minimize eder.

Ya da bu sunucuya tümüyle farklı bir anasistem dosyasında ad verebilirsiniz, böylece başlamak için hiçbir zaman geçiş yapmanıza gerek kalmaz.


Bunları yeniden adlandıramıyorum, çünkü web uygulamaları doğru içeriği oluşturmak için ana bilgisayar adına bağlıdır. Ayrıca, bunu yapmamın nedeni, aynı anda birden fazla tarayıcı çalıştırabilmem ve birinin bir sahnelemeye, diğeri de dev'a erişebilmemdir. Ana bilgisayar dosyalarını değiştirerek bunu yapamazsınız.
Erik Funkenbusch,

@ MystereMan: Eğer META BASE hakkında konuşuyorsanız, sadece tarayıcı tarafında sunucu tespitini yapın. Başka bir URL'de kendi ana bilgisayar adınız olmamalı ...
Tamara Wijsman

@TomWij - Hayır, META BASE hakkında konuşmuyorum. IP tabanlı değil, ana bilgisayar tabanlı sanal barındırma hakkında konuşuyorum. Ana bilgisayar adı alanı hangi siteye erişildiğini belirler.
Erik Funkenbusch

@ MystereMan: O zaman bu cevapla ilgili ilk yorumunuz bir anlam ifade etmiyor. “Doğru içeriği sunan web uygulaması” hakkında konuştuğunuzda, sanal ana bilgisayarların bununla ne alakası olduğunu anlamıyorum?
Tamara Wijsman,

@TomWij - Tek bir sunucuda, tek bir IP ile birden fazla siteyi barındıran çok kanallı bir CMS sistemimiz var. Herhangi bir siteyi görüntülemek için, bir ana bilgisayar adı kullanmanız gerekir , aksi takdirde yalnızca varsayılan örneğe erişirsiniz. Bu sunucunun üretim, evreleme ve geliştirme sürümleri arasında geçiş yapmam gerekiyor, bu da etki alanı adlarının IP adresleriyle anında eşleştirilmeleri anlamına geliyor. Hosts dosyasında bunu yapabilirim, ancak bu global olarak bir şeyleri değiştiriyor, bu yüzden iki farklı tarayıcı örneğinde eşzamanlama ve üretim eşzamanlı kopyalarını açamıyorum.
Erik Funkenbusch

1

Ayrıcalık bu amaç için kullanılabilir.


Privoxy tam olarak bu amaç için nasıl çalışır? Başka hiçbir yerel proxy sunucusu gibi görünmüyor, bunların hiçbiri işe yaramıyor, çünkü çoğu tarayıcıda bir örnek için bir proxy tanımlayamıyorsunuz .. yalnızca tüm örnekler için global proxy'yi tanımlayabilirsiniz
Erik Funkenbusch

@ MystereMan: İsteklerinizi proxy'ye gönderir ve böylece istekleri diğer isteklere yönlendirir, bunu yapmak oldukça kolaydır . Proxy sunucuları hakkında mantıklı değilsiniz: Mirosoft Internet Explorer (GUI), Mozilla Firefox (GUI), Google Chrome (CLI - proxy-server =), Apple Safari (GUI), Opera (GUI) ve diğer tarayıcılar (GUI veya CLI) kendi proxy sunucunuzu ayarlamanıza izin verir ...
Tamara Wijsman

@TomWij - Hayır. IE, Chrome ve Safari, "Internet Ayarları" ndaki genel proxy sunucusu ayarını kullanır. Yani, bir web tarayıcısında değiştirirseniz, hepsinde de değişiyor demektir. Firefox’un bunun için kendi ayarları var, ancak ne yazık ki Firefox’u kullanamıyorum çünkü kullandığımız CMS’de çalışmıyor (her şey yapıyor).
Erik Funkenbusch

@ Mystere Man: Yanlış. Düşüncelerinizi tekrarlamayı bırakın ve bunun yerine her bir tarayıcının size hangi yapılandırmayı verdiğini görün. Belgeleri okumak için çaba harcamak istemiyorsanız, diğer insanlara uygulanmayan çok özel bir şey sorduğunuzda sorununuzu asla çözemezsiniz. Daha önce de söylediğim gibi fakat okumuş görünmüyordunuz: Herhangi bir tarayıcı, bu tarayıcı için proxy sunucusunu ayarlamanıza izin verir. Google Chrome, CLI parametresini sağlar --proxy-server=.
Tamara Wijsman,

1
Hmm, Safari hakkında yanılmış olabilirim çünkü bunu bir süre kullanmadım. Ama sanırım seni yanlış anladım, neden her tarayıcıda farklı bir proxy sunucusu olsun istiyorsun? Neden "x.com = production; stage.x.com = staging; dev.x.com = development" gibi bir şeyin sunucuda tek bir IP ve ana bilgisayar başlık yeniden yönlendirmesi verildiğinde işe yaramayacağına dair kafam karıştı. ...
Tamara Wijsman

1

Bunun sizin için yeterince uygun olup olmadığını bilmiyorum, ancak olası bir çözüm, makineye IIS'yi tarayıcılarla yüklemek ve hostsdosyayı değiştiren sunucu tarafı komut dosyaları (ASP.net, PHP, Ruby ... gibi) sağlamak ve daha sonra gerçek sayfaya yönlendir. Senin tarayıcılarda, daha sonra örneğin, o komut dosyasına bir yer imi oluşturmak http://localhost/config_ie.rbdeğiştirir hostsdosyası (bu dosya üzerinde doğru izin gerektirir tabii ki) ve daha sonra gerçek sayfasına bir 302-redirct yapmak.


1
Çoğu insanın bunu anlayamadığı kısım, etkili bir şekilde çalışmak için, farklı ana bilgisayar / ip eşleştirmelerini kullanarak aynı anda birden fazla tarayıcı çalıştırabilmeniz gerektiğidir. Örneğin, hem prodüksiyonumu hem de test ve hata ayıklama örneklerini farklı tarayıcı örneklerinde açık tutmam gerekiyor. Her birinin aynı ana bilgisayar adını kullanması gerekir (çünkü HTTP 1.1 ana bilgisayar adı eşlemesi, ana bilgisayar adına göre doğru yeri eşler). Ana bilgisayar dosyasını değiştirirseniz, tarayıcıların her bir örneği şimdi yalnızca tek bir değil, yeni sunucuya eşlenir.
Erik Funkenbusch

@Erik Funkenbusch: Açıklama için teşekkürler. Benim kalan fikirlerim: a) Bir kavram, Windows'ta "Veri Yeniden Yönlendirme" olarak adlandırılan ve normalde hassas yollara veri yazan eski uygulamaları desteklemek için UAC için kullanılan dosya sistemi sanallaştırması gibi bir şey kullanıyor olacaktı. Belki bunu kendi amaçlarınız için kullanmanıza izin veren bir seçenek vardır. Sonra hostsher işlem için özel bir dosya olabilir . b) Yerel olarak DNS müdahalesi: "iexplore.exe" vb. istekleri, sağladığınız bazı listeye göre değiştirilebilir. - Beğendiğin bir fikrin var mı?
Michael Kremser

1

Tam bir VM çok fazlaysa, konteyner tabanlı bir çözüm yapabilir.

Burada Linux hakkında konuşuyorsak, lxcuygun bir çözüm olabilir.

Bunun dışında - en az X11 linux ile dolu bir VM bile o kadar büyük değil (en fazla 2 GB disk) ve günümüzde donanımla birlikte çok fazla kaynak (en fazla 512 MB RAM) tüketmiyor ...

Bir LubuntuVM burada yapabilir.


RAM'i buluyorum ve işlem tamam. Paylaşılan disk sistemi sakatlayan şeydir.
jww

0

Nispeten basit bir çözüm (belki de biraz kaynak ağır), sunucunuzda çalışan birkaç sanal makinenin bulunması olacaktır. Her ana makine kendi ana bilgisayar dosyasına sahiptir.

Böylece, sahneleme ortamı için bir prod vb. İçin sanal bir makineniz olur.


Belki de soru altındaki ilk iki yorumu okumalısınız. Bu 4 yıl önce ele alındı.
Erik Funkenbusch

Aslında yorumu gördüm, ancak bu cevabı yayınlayana kadar. Ancak yine de, aynı tür sorunu olan diğer insanlara yardım edebileceğinden, bunun ayrı bir cevap (bir yorumun aksine) olması mantıklı olduğunu düşünüyorum.
Pete

İki VM, paylaşılan disk darboğazı nedeniyle çoğu iş istasyonunu engeller. Hafifçe bir VM açılışıyla acı çekiyorum (biri çift dört çekirdekli modern Mac Mac Book Pro; ikincisi tek çekirdekli dört çekirdekli modern bir ASUS dizüstü bilgisayar). İki VM acı verici olurdu.
jww
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.