Saya memiliki sejumlah server pementasan dan pengujian yang harus saya modifikasi secara konstan untuk mengakses file host saya (mereka bergantung pada nama domain, jadi saya harus mengubah file host agar dapat berfungsi).
Saya menemukan ini menjengkelkan. Saya ingin mengatur semacam browser portabel untuk setiap jenis situs yang ingin saya gunakan. Apakah ada versi browser web grafis apa pun (termasuk browser berdasarkan mesin rendering browser lain) yang akan melakukan ini?
Dengan cara ini saya bisa langsung meluncurkan instance yang sudah dikonfigurasi untuk bekerja dengan pementasan jika saya ingin menguji pementasan.
Ada ide?
EDIT: Fitur penting adalah kemampuan untuk menjalankan dua browser secara bersamaan, keduanya untuk browsing some-address.com
, tetapi dengan satu browser mengarahkan permintaan ke server di 1.2.3.4
dan browser lainnya mengarahkan permintaan ke server di 5.6.7.8
.
EDIT: (3/16/14)
Pertanyaan ini diajukan beberapa tahun yang lalu, dan saya masih belum tahu cara yang layak untuk melakukan ini. Biarkan saya mencoba menjelaskan lebih lanjut, karena orang-orang tampaknya salah paham masalah. Itu bukan sesuatu yang dapat dengan mudah diperbaiki hanya dengan menggunakan server proxy. Saya kira mungkin untuk menulis aturan yang luas di server proxy untuk memecahkan masalah, tapi itu solusi yang sangat kompleks untuk apa yang seharusnya menjadi masalah sederhana.
Jadi untuk memperjelas:
Ada tiga server web. Produksi, Uji, dan Pengembangan. Masing-masing menjalankan aplikasi multi-penyewa yang mengkustomisasi sendiri berdasarkan nama host yang digunakan untuk mengaksesnya. Secara konseptual, ini mirip dengan Sistem Manajemen Konten atau mesin blog yang memungkinkan beberapa situs dijalankan dari server yang sama. Anda cukup arahkan nama host ke server, dan siapa pun nama host yang digunakan untuk mengaksesnya melalui pemetaan hostname HTTP 1.1, adalah situs yang ditampilkannya.
Solusi apa pun yang hanya menulis ulang file host tidak berfungsi karena persyaratan untuk menjalankan beberapa jendela browser pada saat yang sama ke situs yang berbeda, produksi, pengembangan, pengujian, dll ... Jadi hanya mengubah file host secara konstan berfungsi karena memengaruhi semua instance browser. Jika Anda mengubah pemetaan untuk satu browser, maka browser lain sekarang juga dipetakan ke server itu sehingga permintaan berikutnya akan masuk ke server yang salah.
Yang saya cari adalah cara untuk memaksa instance browser ini menggunakan file host ini, dan instance browser itu untuk menggunakan file host itu, seperti melalui parameter baris perintah. Saya bahkan tidak peduli jika saya perlu menginstal banyak salinan browser.
Ini mungkin dapat dilakukan dengan firefox portable, karena saya pikir itu menggunakan file konfigurasi sendiri per salinan yang diinstal, tetapi masalahnya adalah perangkat lunak pihak ketiga yang digunakan untuk mengelola situs tidak bekerja dengan firefox (situs itu sendiri melakukannya, tetapi alat admin tidak, mereka bekerja dengan baik dengan chrome dan IE dan Opera, namun .. dan saya tidak memiliki akses ke sumber untuk memperbaikinya).
sumber
Jawaban:
Squid memecahkan masalah bagi saya. Saya pikir banyak server proxy dapat melakukan hal yang sama.
Secara khusus, saya harus menginstal Squid. Kemudian ubah squid.conf sehingga mengakses file host alternatif. Ini adalah baris yang ingin Anda ubah:
Dalam kasus saya, saya menggunakan
hosts_file /etc/hosts-squid
. Saya membuat/etc/hosts-squid
file dan mengubah file host-squid sehingga akan memberi saya akses ke alamat IP baru yang saya inginkan untuk URL yang diberikan. Hanya itu yang perlu saya lakukan untuk mengkonfigurasi server proxy Squid.Saya kemudian membuat perintah untuk meluncurkan browser saya dengan pengaturan proxy. Saya menggunakan:
Menjalankan perintah itu secara efektif memberi saya contoh menjalankan krom yang dapat mengakses pengaturan domain di file hosts-squid yang saya buat.
Saya juga dapat mengatur lebih banyak server proxy menggunakan beberapa instance Squid untuk mengakses situs web produksi, pengembangan, dan lokal semua di komputer yang sama. Petunjuk tentang cara menjalankan beberapa instance Squid ada di sini . Saya juga menulis posting blog yang menjelaskan masalah dan solusinya dengan sedikit lebih detail.
sumber
Saya yakin Anda meminta pengaturan lingkungan virtual untuk setiap browser yang menyertakan file host-nya sendiri.
Salah satu solusinya mungkin menggunakan Sandboxie untuk mengatur kotak pasir terpisah, masing-masing berisi file host sendiri. Browser tidak perlu diinstal ke dalam kotak pasir untuk menggunakan file host, baru saja dimulai dari dalam kotak pasir itu. Pintasan desktop dapat dibuat untuk meluncurkan browser dari dalam kotak pasir.
Kerugiannya adalah browser akan diisolasi dari sistem file nyata misalnya ketika mengunduh file dari Internet, tetapi Sandboxie menyertakan mekanisme untuk menyalin file seperti itu di luar sandbox.
Sayangnya, fitur menjalankan program di lebih dari satu kotak pasir pada saat yang sama hanya tersedia dalam versi berbayar dari Sandboxie (15 euro ditambah pajak untuk lisensi satu tahun untuk penggunaan pribadi di rumah). Pengujian kelayakan dapat dilakukan menggunakan versi gratis.
Untuk pengguna Linux, produk serupa adalah:
sumber
%SYSTEM32%/Drivers/etc/hosts
pada Windows dan/etc/hosts
Linux. Dapatkah kamu mengkonfirmasi? Saya lebih suka versi Linux karena saya melakukan evaluasi keamanan cepat dari Sandboxie beberapa tahun yang lalu di Windows (gagal, dan laporan kepada penulis tidak dijawab).%SYSTEM32%/Drivers/etc/hosts
, maka poinnya adalah milik Anda. OS tidak ditentukan secara spesifik, dan tidak adil bagi Anda untuk menahannya jika Windows / Sandboxie berfungsi.Anda dapat mengotomatiskan proses mengubah file host dengan firefox + HostAdmin
HostAdmin adalah Addon Firefox, yang membantu Anda memodifikasi file Host, beralih pemetaan domain-ip. HostAdmin dapat memahami file Hosts Anda melalui sintaksis file Host yang disempurnakan. Selain itu, HostAdmin menyegarkan cache DNS Anda secara otomatis setiap kali Anda mengubah file Host Anda, bahkan secara manual.
Contoh konfigurasi
Info lebih lanjut di https://addons.mozilla.org/en-US/firefox/addon/hostadmin/
Banyak contoh
Untuk menjalankan dua instance browser firefox secara bersamaan dan mandiri di linux, buat beberapa peluncur dengan skrip berikut. Juga instal plugin di semua firefox.
Firefox 1
Firefox 2
Anda dapat menggunakan opsi profil (
firefox -P
) di browser untuk menggunakan profil asli untuk pengaturan yang berbeda dan dapat digunakan secara bersamaan.sumber
Saya tahu ini bukan yang Anda minta, tetapi solusi sementara bisa dengan menulis skrip batch untuk menukar file host dan kemudian membuka browser.
Setidaknya itu akan meminimalkan pekerjaan yang Anda lakukan.
Atau Anda bisa memberi nama server ini sesuatu yang sama sekali berbeda dalam file host sehingga Anda tidak perlu beralih untuk memulainya.
sumber
Privoksi dapat digunakan untuk tujuan ini.
sumber
--proxy-server=
.Tidak tahu apakah ini cukup nyaman untuk Anda, tetapi satu solusi yang mungkin adalah menginstal IIS pada mesin dengan browser dan menyediakan skrip sisi server (seperti ASP.net, PHP, Ruby ...) yang mengubah
hosts
file dan lalu arahkan ke halaman yang sebenarnya. Di browser Anda, Anda kemudian membuat bookmark ke skrip itu, misalnyahttp://localhost/config_ie.rb
yang mengubahhosts
file (tentu saja, memerlukan izin yang benar pada file itu) dan kemudian melakukan redirect-302 ke halaman sebenarnya.sumber
hosts
file khusus untuk setiap proses. b) Intersepsi DNS secara lokal: Permintaan dari "iexplore.exe" dll. dapat dimanipulasi sesuai dengan beberapa daftar yang Anda berikan. - Apakah ada ide yang Anda sukai?Jika VM penuh terlalu banyak, solusi berbasis wadah mungkin dilakukan.
Jika kita berbicara tentang linux di sini,
lxc
mungkin solusi yang layak.Selain itu - bahkan VM penuh dengan X11-linux minimal tidak sebesar itu (maks 2 GB disk) dan tidak mengkonsumsi banyak sumber daya (maks. 512 MB RAM) dengan perangkat keras saat ini ...
Sebuah
Lubuntu
VM mungkin lakukan di sini.sumber
Salah satu solusi yang relatif sederhana (tapi mungkin sedikit sumber daya berat) adalah memiliki beberapa mesin virtual yang berjalan di host Anda. Setiap mesin virtual memiliki file host sendiri.
Jadi Anda akan memiliki satu mesin virtual untuk lingkungan pementasan, satu untuk prod, dll.
sumber