Penemuan Terbaru
Dengan IIS diatur kembali ke port 80
, ketika saya dimasukkan ke dalam http://localhost/
komputer WHS, itu memberi saya halaman "Ada masalah dengan sertifikat keamanan situs web ini". Jika saya "Lanjutkan", url ini muncul https://localhost/Remote/logon?ReturnUrl=%2fremote
untuk Akses Web Jarak Jauh Windows Home Server 2011 untuk username
dan password
. Sekarang, saya tidak dapat mengingat dengan pasti, tetapi saya tidak percaya bahwa pada awalnya hanya http://localhost/
mengemukakan masalah ini. Namun, sepertinya ini dapat mempengaruhi upaya untuk mengakses localhost (terlepas dari port).
Apa yang sebenarnya menjadi masalah utama
Oh, seluk beluk jaringan! Satu hal yang terus mengganggu saya adalah mengapa dua situs akan "sebagian" muncul, dan yang lainnya tidak sama sekali. Kemudian, menjalankan pelacakan NET Firebug mengungkapkan kepada saya bahwa masalah utama saya adalah bahwa ISP saya bertindak sebagai proksi DNS , dan tentu saja tidak menemukan situs pengujian saya. Tapi ia menemukan dua situs yang hidup di alamat www.
(bukan test.
), dan tampaknya melayani mereka, tetapi gambar diblokir karena (saya berasumsi) saya telah menyiapkan blok untuk mengakses file gambar jika bukan dari www.
untuk situs tertentu.
Itu menjelaskan misteri gambar yang tidak ditampilkan (mengharapkan localhost:8080
panggilan langsung ) dan perilaku aneh dalam "sebagian" menemukan dua dari lima situs tersebut.
Sekarang saya perlu mencari cara untuk mengkonfigurasi dengan benar router saya atau file proxy untuk mengarahkan kembali ke komputer WHS saya. Saya menggunakan layanan internet satelit Wildblue, karena saya berada di luar area koneksi layanan yang lebih cepat. Mereka memiliki file "pengoptimal" (Saya tidak tahu apakah itu dapat dilihat oleh semua orang atau tidak, jika tidak, pada dasarnya sama dengan versi ini ), sehingga saya dapat memodifikasi dan memakai sistem lokal saya untuk mencapai apa yang saya butuhkan, tetapi saya tidak yakin apa yang harus saya lakukan di sana.
Jika ada yang punya saran tentang memodifikasi file itu, atau bagaimana mengkonfigurasi router Linksys E1200 saya untuk menghindari pengiriman ke proxy jika itu adalah situs lokal, maka itu mungkin langkah pertama (dan mungkin terakhir) untuk menyelesaikan masalah saya.
Kode perwakilan berdasarkan rekomendasi harrymc ... masih tidak berfungsi
Port IIS diatur ke :90
.
httdp
mengajukan:
Listen *:80
ServerName localhost:80
vhosts
mengajukan:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
ProxyRequests off
ProxyPass / http://127.0.0.1:90/
ProxyPassReverse / http://127.0.0.1:90/
</virtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
Pembaruan Sebelumnya: Apa yang saya yakini sebagai masalah utama (mungkin merupakan sub masalah)
Bagaimana cara membuat Windows Home Server (menjalankan IIS) meneruskan URL localhost khusus ke port 8080
sehingga Apache (bukan IIS) yang berjalan pada mesin yang sama mengambil permintaan untuk melayani halaman?
The c:\Windows\System32\drivers\etc\hosts
file telah berubah (lihat di bawah), tapi saya menganggap bahwa tidak ada hubungannya dengan rerouting ke port baru. IIS, saya juga berasumsi, mengambil test.whatever
permintaan url khusus pada port 80
dan routing ke host lokal sendiri di port yang sama.
Saya mengunduh Routing Permintaan Aplikasi dari tip di situs yang saya temukan dalam riset, tetapi dalam melihatnya, saya tidak yakin apakah itu akan membantu atau tidak (harapan saya adalah untuk mengatur beberapa penerusan berbasis url ke port 8080
olehnya). Saya seorang desainer web, bukan penyihir jaringan. Jadi bagaimana semua ini bekerja agak sulit bagi saya.
Kemungkinan Arah untuk Pergi
Berdasarkan dari tautan ini (ditemukan setelah mencari lebih banyak berdasarkan komentar pertama erikxiv di bawah) Saya mencoba yang berikut di IIS sebagai URL menulis ulang:
Aturan Keluar:
Cocok: .*
(sepertinya menguji baik-baik saja)
Kondisi:
Cocok dengan Semua ... (ini tampaknya menguji kecocokan pola, oke)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
Tindakan Menulis Ulang:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
Tetapi tampaknya masih tidak ada penerusan!
Informasi di bawah ini sekarang semua latar belakang di belakang permintaan baru, di atas.
Info Latar Belakang
Saya baru-baru ini mengubah desktop lama yang menjalankan Windows XP menjadi Windows Home Server (2011). Komputer lama juga menjadi tuan rumah bagi situs uji lokal yang berjalan pada instalasi Apache. Melakukan beberapa penelitian mengungkapkan bahwa menjalankan Apache pada mesin WHS tidak akan sesulit yang saya pikirkan (banyak situs mengatakan bahwa IIS dari WHS dan Apache akan menyebabkan masalah, tetapi beberapa saya menemukan disebutkan tidak ada masalah sama sekali jika diatur dengan benar- -pada dasarnya, pastikan tidak ada konflik port).
Jadi saya menginstal WAMP (versi 64-bit) ke komputer WHS, dan mengubah pengaturan di httpd
file konfigurasi Apache untuk mendengarkan di port 8080
sehingga tidak akan ada konflik dengan IIS. Saya mengatur file host virtual saya seperti pada komputer XP, hanya dengan perubahan port juga.
Pada dasarnya, semuanya tampak berjalan baik (namun, lihat pembaruan), kecuali ...
Masalah (Asli)
Sementara halaman ke situs lokal menarik dengan baik, dan semua css dan javascript berfungsi, setiap file gambar tidak ditampilkan . Info jalur benar karena dibuktikan dengan mengklik kanan dan memilih View Image Info
(di Firefox ... omong-omong, gambar tidak ditampilkan di peramban apa pun, jadi ini bukan bug peramban).
Apa yang saya perhatikan, bagaimanapun, adalah bahwa Type
di kotak info gambar ditampilkan text/html
, bukan PNG Image
atau JPEG Image
dll. Ini ada di informasi di bawah ini yang menunjukkan info jalur (alamat) - di bagian itu, ia mengenali bahwa file itu sendiri adalah Type
salah satu Image
atau Background
.
Namun terlepas dari kenyataan itu, tampaknya daripada mengenali tipe mime yang benar (saya berasumsi) dari gambar dalam html (sebenarnya php yang dihasilkan html), alih-alih mencoba untuk memproses gambar (apakah img
elemen atau css background-image
) sebagai teks, dan dengan demikian tidak memberi saya apa-apa! Tapi saya tidak tahu mengapa. The mime
berkas mengendalikan Apache mime-jenis benar. Halaman memiliki tajuk berikut ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... tetapi itu seharusnya tidak menyebabkan masalah (mereka tidak ketika menjalankan di XP, juga tidak di situs langsung).
Jadi saya mencari pemikiran tentang:
- Apakah analisis saya tentang tipe mime menjadi masalah yang benar (berdasarkan pembaruan, mungkin tidak)?
- Di mana lagi saya bisa melihat yang mungkin menyebabkan masalah, dan bagaimana cara memperbaikinya? Mungkinkah itu masih merupakan konflik dengan IIS di WHS, dan jika demikian, apa? Mungkinkah apa pun di php (ini tampaknya tidak mungkin), dan jika demikian, apa? Apa lagi yang bisa saya periksa di Apache?
Info Terkini (dengan lebih banyak [terkait?] Masalah)
Melakukan lebih banyak main-main, saya sampai pada kesimpulan bahwa setidaknya sebagian dari masalah tampaknya menjadi perubahan ke port :8080
. Pertama, saya menyadari tidak semua baik dan saya pikir untuk mendapatkan semua situs saya. Saya memiliki representasi ini di c:\Windows\System32\drivers\etc\hosts
file saya :
127.0.0.1 localhost
127.0.0.1 test.site1.net
127.0.0.1 test.site2.net
127.0.0.1 test.site3.com
127.0.0.1 test.site4.com
127.0.0.1 test.site5.com
Dan representasi ini di vhosts
file apache saya :
NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
</VirtualHost>
Inilah perilaku : site1
dan site4
muncul, tetapi tanpa gambar. Tiga lainnya tidak muncul sama sekali, tetapi memberi Network Error (dns_unresolved_hostname)
.
Namun, jika saya mengakses situs pertama di vhosts pada mesin WHS dengan menggunakan localhost:8080
di url, maka gambar yang muncul , dan situs mana yang pertama dalam file vhosts saya juga muncul (yang diharapkan); Namun, ia melakukannya bahkan jika itu adalah salah satu yang sebelumnya tidak akan (jadi jika saya pindah site2
ke posisi pertama, itu mulai "berfungsi" melalui localhost:8080
panggilan).
Saya tahu file gambar saya mengembalikan kesalahan 403
( dikoreksi, awalnya saya katakan 404 ) ketika diakses melalui test.site4.com
sintaks di url, dan saya menduga bahwa gambar saya muncul text/html
karena file mengembalikan kesalahan itu (jadi saya tidak berpikir itu adalah masalah tipe mime sekarang karena banyak kegagalan untuk menemukan gambar). Tetapi yang aneh adalah bahwa jalurnya benar, dan file non-gambar (javascript dan css) muncul dengan baik.
Jadi dalam pikiran saya sepertinya ada sesuatu dengan port switch 8080
. Masalah saya sekarang adalah:
- Mengapa file host dan vhosts saya tidak menemukan semua situs dengan benar (adakah file lain yang perlu saya modifikasi pada Windows Home Server)?
- Di situs-situs itu memang berfungsi, mengapa gambar secara khusus tidak ditemukan (dengan kesalahan 403, itu adalah "dilarang" saya percaya, yang tidak masuk akal jika file lain di folder situs web diizinkan mengakses)?
- Mengapa
localhost:8080
akses bekerja apa pun yang terkait dengan dua masalah pertama?
Beberapa Info Lebih Lanjut
Permintaan dibuat bagi saya untuk mengirim file log. Namun, saya menemukan tidak ada log yang terjadi kecuali (muncul) dalam contoh tersebut ketika saya diakses melalui localhost:8080
panggilan langsung ke situs "default".
Jadi saya mematikan layanan WAMP, dan pergi ke url dan menemukan perilaku yang sama seperti ketika WAMP sedang berjalan. Ini tampaknya menunjukkan bahwa IIS masih mengendalikan nama-nama domain, daripada Apache mengambilnya ( dapatkah seseorang mengkonfirmasi asumsi saya di sana? ) , Dan dengan demikian masalahnya mungkin masih berupa sesuatu dengan mendapatkan kontrol sendiri ke server WAMP.
Jawaban:
Apakah Anda mungkin memiliki file .htaccess yang menyebabkan gambar disajikan sebagai teks / html?
sumber
.htaccess
file, dan tidak ada yang memilikiForceType
kode.Jika Anda dapat memberikan file access.log Anda (setidaknya beberapa baris yang menunjukkan status 404 untuk permintaan gambar), kami dapat memeriksa apa yang salah. Saya menduga itu hanya masalah nama domain, atau situs Anda dapat menggunakan jalur absolut untuk gambar (hanya menebak ...) yang ditangani secara tidak benar oleh apache
sumber
localhost
akses langsung . Jadi saya mematikan server WAMP bersama-sama, dan ternyata saya mendapatkan hasil yang sama. Yang tampaknya menunjukkan bahwa Apache tidak menangani permintaan untuk memulai, tetapi IIS.Utas IIS redirect ke Apache berisi solusi yang sangat sederhana, yang berlawanan dengan milik Anda.
Penulis entri terakhir mengatakan bahwa pengalihan di IIS terlalu terbatas untuk melakukan pekerjaan itu.
Menggunakan solusinya, Anda akan mengatur IIS untuk menerima permintaan dari port lain dari 80, misalnya 90. Kemudian menempatkan Apache sebagai penerima untuk port 80 dan 8080, dengan pengalihan port 80 ke port 90. Apache tampaknya berhasil melakukan apa IIS tidak bisa.
sumber
ourdomain.dom
adalah sesuatu yang spesifik untuk komputer saya atau tidak (atau itu hanya nama yang sewenang-wenang, karena ia berurusan dengan subdomain ... haruskah saya memilikinyalocalhost
?). Selain itu, di tautan pertama,our.ip.addess
perutean ke IIS akan sama untuk server Apache, karena mereka berada di komputer yang sama (hanya port yang berbeda). Itu seharusnya tidak menyebabkan masalah, kan?Karena Anda telah melacaknya ke masalah DNS, hasil dasarnya adalah Anda memerlukan server DNS lokal yang dapat Anda konfigurasi. Anda juga menyebutkan router Linksys E1200 dan Windows Home Server, jadi ada dua pendekatan yang bisa Anda ambil.
Pertama, Anda dapat mempertimbangkan menjalankan firmware pihak ketiga (mis. DD-WRT, OpenWRT, Tomato) di router Anda. Yang Anda miliki adalah menggunakan chipset Broadcom dan harus memiliki flash yang memadai; DD-WRT mencantumkannya sebagai didukung. Kekhawatiran terbesar saya adalah bahwa entah bagaimana komunitas firmware router pihak ketiga tampaknya telah berpindah ke titik di mana itu seperti mencoba menjalankan Linux kembali di awal tahun 90-an. Anda dapat mencoba menggali melalui forum untuk menemukan apa yang Anda butuhkan, tetapi jangan percaya dengan database router di situs DD-WRT karena itu akan mengarahkan Anda ke hal-hal yang salah. Secara keseluruhan opsi ini gagal mengisi saya dengan percaya diri, dan kecuali Anda memiliki router kedua yang tersedia, saya tidak yakin saya dapat merekomendasikannya kecuali Anda suka mengutak-atik hal semacam ini.
Kedua, Anda dapat RDP ke WHS dan nyalakan server DNS seperti yang dijelaskan dalam utas forum ini. Pendekatan dasar, RDP dalam, Panel Kontrol, Tambah / Hapus Program, Tambah / Hapus Komponen Windows (tombol), pilih kotak centang Server DNS, dapatkan kembali. Yang saya tidak yakin adalah apakah Anda mendapatkan konsol manajemen DNS dengan ini, dan saya tidak punya kotak WHS untuk mengujinya. Jika Anda mendapatkan konsol itu, itu akan berada di bawah Administrative Tools / DNS. Untuk menggunakannya sesuai keinginan Anda, Anda perlu menambahkan zona penerusan baru; untuk hal-hal yang Anda lakukan, saya akan menambahkan zona untuk setiap host (mis. tambahkan zona untuk www.samplesite.apapun) kemudian tambahkan entri catatan A ke sana tanpa nama yang ditentukan yang akan menjadikannya default untuk itu. daerah. Pendekatan lain adalah menambahkan zona untuk sampleite. Apa pun, kemudian tambahkan catatan bernama A (mis. "Www" atau "mail"), tetapi itu mungkin berakhir dengan memblokir hal-hal yang tidak ingin Anda blokir. Zona yang lebih bertarget membuat Anda tidak memengaruhi hal-hal yang tidak ingin Anda arahkan. Anda kemudian akan mengarahkan semua sistem Anda di kotak ini sebagai server DNS. Secara default ini akan melakukan resolusi DNS eksternal sendiri sepenuhnya melewati server DNS ISP Anda; jika Anda ingin menggunakannya sebagai tahap berikutnya, Anda dapat menentukan alamatnya sebagai Forwarder di properti server DNS (klik kanan dan cari di sekitar).
Ketiga, jika opsi Dua tidak berfungsi dan opsi Satu menakutkan Anda, Anda dapat mengatur kotak Linux secara internal dan mengaturnya sebagai server DNS. Ada banyak instruksi di luar sana tentang cara melakukannya; pencarian sepintas muncul artikel ini oleh Mark Kolich yang tampaknya menjadi instruksi yang layak untuk melakukan hal itu. Jika Anda cenderung, ini mungkin juga menawarkan sumber daya yang Anda butuhkan untuk bereksperimen dengan hosting berbasis Linux (kecuali jika Anda melakukan pengembangan berbasis Windows misalnya .NET atau sejenisnya).
Perbandingan Server DNS Wikipedia ini juga dapat digunakan. Dari catatan yang mungkin adalah Simple DNS Plus (komersial), Posadis (gratis, basi? 2004), MaraDNS (gratis, non-GUI, layak dilihat), dan Tidak terikat (gratis, memang memiliki unduhan biner Windows, tidak menggali lebih jauh) . Semua ini harus berjalan di Windows.
sumber
C:\Windows\System32\drivers\etc
file itu sudah saya modifikasi, namun sepertinya masih belum diambil sejauh mendefinisikan situs lokal saya. Artikel ini tampaknya menunjukkan bahwa file tersebut digunakan oleh64-bit
native, dan32-bit
oleh redirection. Bagaimana ini dapat memengaruhi instalasi Apache saya dan mengapalocalhost
diabaikan untuk situs lokal saya?kamu harus punya
sebelum
</VirtualHost>
mengizinkan.sesuatu seperti ini
saya menggunakan 192.168.1.100:80 untuk iis dan 192.168.1.200:8080 untuk apache di Internet Protocol v4 Pengaturan IPv4 (Advanced IP Settings) memiliki 2 kelas C ip 192.168.1.100 dan menambahkan 192.168.1.200 ini juga membantu dalam SEO karena kelas Alamat C ip untuk 2 situs web berbeda yang saling terhubung satu sama lain.
sumber