Saya ingin mengkonfigurasi file host Windows untuk mengirim permintaan host berdasarkan alamat IP + port.
Sebagai contoh:
127.0.0.1:80 www.site1.com
127.0.0.1:8080 www.sitetwo.com
Karena saya memiliki Apache mendengarkan pada port 8080 dan IIS pada port 80 (default).
Jadi, saya pikir cara terbaik untuk melakukan ini adalah dengan memodifikasi hosts
file. Itu tidak mempengaruhi apa pun. Saya tidak mendapatkan pesan kesalahan atau pesan apa pun.
iis
apache-2.2
Peter Mortensen
sumber
sumber
Jawaban:
Kamu tidak bisa File host hanya itu - host. Ini setara dengan DNS "korsleting" dalam mesin lokal Anda. DNS juga tidak dapat mengirim Anda ke porta.
Untuk mencapai apa yang Anda coba lakukan, Anda ingin mengatur hosting virtual di bawah IIS atau Apache, dan menggunakannya (berdasarkan HTTP Host: header) untuk membiarkan layanan memutuskan situs mana yang akan ditampilkan. Ini tidak akan membantu Anda, jika Anda ingin melakukan ini dengan IIS dan Apache secara bersamaan.
sumber
hosts
file untuk resolusi nama host hanya<hostname>:<port>
, default port80
Skenario Masalah Khas
127.0.0.1
aliaslocalhost
(didefinisikan dalam file host) .untuk menghindari tabrakan antara kemungkinan server lain yang ada / berjalan, aplikasi biasanya memungkinkan Anda untuk mengubah port, tetapi bukan alamat ip.
2a. Jika Anda bisa mengubah alamat IP server ke yang lain di ruang alamat loopback yang dicadangkan
127.0.0.0/8
, maka Anda mungkin tidak akan mencoba untuk mengatur port di file host.Solusi yang mungkin
Anda dapat mengatasi ini menggunakan alat Jaringan yang disertakan Windows
netsh
sebagai proxy port.Gambaran
Tindakan
localhost:8081
127.65.43.21 example.app
127.0.0.0/8
dapat digunakan.127.65.43.21:80
tidak ditempati oleh layanan lain.netstat -a -n -p TCP | grep "LISTENING"
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
Catatan:
- Perintah / modifikasi file ini harus dijalankan dengan hak Admin
- netsh portproxy membutuhkan pustaka ipv6 bahkan hanya untuk menggunakan v4tov4, biasanya mereka juga akan disertakan secara default, jika tidak menginstalnya menggunakan perintah berikut:
netsh interface ipv6 install
Anda dapat melihat entri yang telah Anda tambahkan dengan perintah:
netsh interface portproxy show v4tov4
Anda dapat menghapus entri dengan perintah berikut:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Tautan ke Sumber Daya:
Catatan: jawaban ini adalah duplikat dari jawaban saya yang dibahas dalam pertanyaan / jawaban serupa di stackoverflow ini.
sumber
Tidak bisa. Jika tidak berhasil, maka ada sesuatu yang salah.
Saya berasumsi ini untuk kotak pengembangan?
DNS akan menyelesaikan site.com dan www.site.com ke localhost selama Anda tidak melakukan sesuatu seperti proksi kueri DNS Anda. Anda mungkin harus bertanya di ServerFault untuk bantuan konfigurasi server web, itu masalah yang paling mungkin.
sumber
Anda bisa melakukannya dengan Fiddler . Dengan skrip Fiddler , Anda dapat melakukan banyak hal menakjubkan.
Jika Anda mengatur host seperti ini
Tambahkan ini di CustomRules.js (untuk membuka CustomRules.js , pilih Kustomisasi Aturan pada menu Aturan Fiddler )
Kemudian Fiddler mengonversi host, dan Anda akan terhubung ke port 8080.
sumber
Apakah Anda menggunakan server hanya untuk pengembangan lokal? Jika demikian, Anda dapat menempatkan Apache Anda untuk mendengarkan 127.0.0.2:80 dan mengalihkannya dengan file hosts ke nama domain yang Anda sukai.
sumber
Seperti dengan jawaban lainnya, file host tidak memiliki informasi port tetapi Anda dapat memiliki halaman yang mengarahkan ulang pada header seperti apache atau IIS akan lakukan untuk hosting virtual berbasis nama. Periksa tajuk dan arahkan ulang sesuai kebutuhan. Namun saya tidak benar-benar melihat nilai ini karena Anda menciptakan kembali kemudi. Apache mendukung virtual hosting berbasis port dan saya berasumsi iis.
Apakah tujuan Anda untuk memiliki mesin pengembangan dengan menjalankan keduanya adalah ini untuk situasi produksi.
sumber
Ikuti langkah ini:
/programming/8652948/using-port-number-on-windows-xp-host-file
sumber
Inilah yang dapat Anda lakukan, akan sangat membantu untuk pengembangan lokal saja.
file host:
Di IIS, buat situs web baru dan untuk local.site1.com & local.site2.com
Pengaturan IIS
Anda baik untuk pergi. Pastikan port yang Anda gunakan tidak digunakan oleh beberapa proses lain & juga terbuka dari firewall, antivirus, dll.
Setelah ini, Anda dapat menggunakan url berikut untuk mengakses situs web dari mesin lokal atau dari LAN.
sumber