การค้นพบล่าสุด
เมื่อ IIS ตั้งค่ากลับเป็นพอร์ต80
เมื่อฉันใส่ในhttp://localhost/
คอมพิวเตอร์ WHS มันทำให้ฉันมีหน้าคำเตือน "มีปัญหาเกี่ยวกับใบรับรองความปลอดภัยของเว็บไซต์นี้" ถ้าฉัน "ต่อไป" อย่างไรก็ตาม URL นี้ขึ้นมาhttps://localhost/Remote/logon?ReturnUrl=%2fremote
สำหรับ 2011 การเข้าถึงเว็บหน้าแรกของ Windows เซิร์ฟเวอร์จากระยะไกลสำหรับและusername
password
ตอนนี้ฉันไม่สามารถจำได้อย่างแน่นอน แต่ฉันไม่เชื่อว่าเดิมเป็นเพียงhttp://localhost/
การนำปัญหานี้ขึ้นมา อย่างไรก็ตามดูเหมือนว่าสิ่งนี้อาจส่งผลต่อความพยายามในการเข้าถึง localhost (ไม่ว่าพอร์ต)
สิ่งที่จริงอาจเป็นปัญหาหลัก
โอ้ความซับซ้อนของระบบเครือข่าย! สิ่งหนึ่งที่ทำให้ฉันรำคาญใจก็คือสาเหตุที่เว็บไซต์สองแห่งขึ้นมา "บางส่วน" ขึ้นมาและที่อื่นไม่ได้เลย จากนั้นการเรียกใช้การติดตาม NET ของ Firebug พบกับฉันว่าปัญหาหลักของฉันคือ ISP ของฉันทำหน้าที่เป็นพร็อกซี DNSและแน่นอนไม่พบไซต์ทดสอบของฉัน แต่มันหาทั้งสองไซต์ที่อยู่ที่อยู่www.
(ไม่ใช่test.
) และดูเหมือนจะให้บริการเหล่านั้น แต่รูปภาพถูกบล็อกเพราะ (ฉันถือว่า) ฉันได้ตั้งค่าบล็อกเพื่อเข้าถึงไฟล์รูปภาพหากไม่ใช่จากwww.
สำหรับ ไซต์เฉพาะ
นั่นอธิบายถึงความลึกลับของภาพที่ไม่แสดง (คาดหวังว่าจะlocalhost:8080
โทรโดยตรง) และพฤติกรรมแปลก ๆ ใน "บางส่วน" ในการค้นหาสองไซต์จากห้าไซต์เหล่านั้น
ตอนนี้ฉันต้องหาวิธีกำหนดค่าเราเตอร์หรือไฟล์พร็อกซีให้ถูกต้องเพื่อเปลี่ยนเส้นทางกลับไปยังคอมพิวเตอร์ WHS ของฉัน ฉันใช้บริการอินเทอร์เน็ตผ่านดาวเทียม Wildblue เพราะฉันอยู่นอกพื้นที่การเชื่อมต่อบริการที่รวดเร็วกว่า พวกเขามีไฟล์ "เครื่องมือเพิ่มประสิทธิภาพ" (ฉันไม่รู้ว่ามันสามารถดูได้กับทุกคนหรือไม่ถ้าไม่ใช่มันก็เหมือนกับรุ่นนี้ ) ซึ่งฉันสามารถแก้ไขและวางระบบในท้องถิ่นของฉันเพื่อให้บรรลุ สิ่งที่ฉันต้องการ แต่ฉันไม่แน่ใจว่าฉันต้องทำอะไร
หากใครมีข้อเสนอแนะใด ๆ ในการปรับเปลี่ยนไฟล์นั้นหรือวิธีการกำหนดค่าเราเตอร์ Linksys E1200 ของฉันเพื่อหลีกเลี่ยงการส่งไปยังพร็อกซีถ้ามันเป็นเว็บไซต์ท้องถิ่นแล้วนั่นอาจเป็นขั้นตอนแรก (และสุดท้าย) เพื่อแก้ไขปัญหาของฉัน
รหัสตัวแทนตามคำแนะนำของ harrymc ... ยังไม่ทำงาน
IIS :90
ชุดพอร์ต
httdp
ไฟล์:
Listen *:80
ServerName localhost:80
vhosts
ไฟล์:
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>
อัปเดตก่อนหน้า: สิ่งที่ฉันเชื่อว่าเป็นปัญหาหลัก (อาจเป็นปัญหาย่อย)
ฉันจะทำให้ Windows Home Server (เรียกใช้ IIS) ส่งต่อ localhost URL ที่เฉพาะเจาะจงไปยังพอร์ต8080
เพื่อให้ Apache (ไม่ใช่ IIS) ทำงานบนเครื่องเดียวกันเลือกคำขอเพื่อให้บริการหน้าได้อย่างไร
c:\Windows\System32\drivers\etc\hosts
ไฟล์ได้ถูกเปลี่ยน (ดูด้านล่าง) แต่ฉันคิดว่ามีอะไรจะทำอย่างไรกับการเปลี่ยนเส้นทางไปยังพอร์ตใหม่ IIS, ฉันก็ถือว่า, ได้รับการtest.whatever
ร้องขอ url ที่เฉพาะเจาะจงบนพอร์ต80
และการกำหนดเส้นทางไปยังโลคัลโฮสต์ของตัวเองบนพอร์ตเดียวกัน
ฉันดาวน์โหลดApplication Request Routingจากเคล็ดลับบนเว็บไซต์ที่ฉันพบในการค้นคว้า แต่ในการดูฉันไม่แน่ใจว่ามันจะช่วยได้หรือไม่ (ความหวังของฉันคือตั้งค่าการส่งต่อ URL ไปยังพอร์ต8080
ด้วย) ฉันเป็นนักออกแบบเว็บไซต์ไม่ใช่ตัวช่วยสร้างเครือข่าย ดังนั้นวิธีการทำงานทั้งหมดนี้ค่อนข้างเข้าใจยากสำหรับฉัน
ทิศทางที่เป็นไปได้ที่จะไป
ยึดตามลิงก์นี้ (พบหลังจากค้นหาเพิ่มเติมตามความคิดเห็นแรกของ erikxiv ด้านล่าง) ฉันพยายามทำสิ่งต่อไปนี้ใน IIS เพื่อเขียน URL ใหม่:
กฎขาออก:
การแข่งขัน: .*
(ดูเหมือนจะทดสอบไม่เป็นไร)
เงื่อนไข:
ตรงกับส่วนใด ๆ ของ ... (สิ่งเหล่านี้ดูเหมือนจะทดสอบรูปแบบที่เข้ากันได้ดี)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
เขียนซ้ำการกระทำ:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
แต่ดูเหมือนว่ายังไม่มีการส่งต่อ!
ข้อมูลด้านล่างตอนนี้เป็นพื้นหลังทั้งหมดใหม่เหนือคำขอ
ข้อมูลความเป็นมา
ฉันเพิ่งเปลี่ยนเดสก์ท็อปเก่าที่ใช้ Windows XP เป็น Windows Home Server (2011) คอมพิวเตอร์เก่าเป็นโฮสต์สำหรับไซต์ทดสอบในเครื่องที่ติดตั้ง Apache การทำวิจัยบางอย่างเปิดเผยว่าการใช้ Apache บนเครื่อง WHS จะไม่เป็นเรื่องยากอย่างที่ฉันคิดไว้ก่อน (เว็บไซต์หลายแห่งบอกว่า IIS ของ WHS และ Apache จะทำให้เกิดปัญหา แต่มีบางคนที่พบว่าไม่มีปัญหาเลย - โดยทั่วไปตรวจสอบให้แน่ใจว่าไม่มีข้อขัดแย้งของพอร์ต)
ดังนั้นฉันจึงติดตั้งWAMP (รุ่น 64 บิต) ไปยังคอมพิวเตอร์ WHS และเปลี่ยนการตั้งค่าในhttpd
ไฟล์Apache config เพื่อฟังที่พอร์ต8080
ดังนั้นจะไม่มีข้อขัดแย้งกับ IIS ฉันตั้งค่าไฟล์โฮสต์เสมือนของฉันบนคอมพิวเตอร์ XP เฉพาะกับการเปลี่ยนแปลงพอร์ตเช่นกัน
โดยพื้นฐานแล้วทุกอย่างดูเหมือนจะทำงานได้ดี (อย่างไรก็ตามดูอัปเดต) ยกเว้น ...
ปัญหา (ต้นฉบับ)
ในขณะที่หน้ายังเว็บไซต์ท้องถิ่นดึงดีและ CSS และ JavaScript ทั้งหมดจะทำงานไฟล์ภาพทุกคนจะไม่แสดง ข้อมูลเส้นทางถูกต้องตามหลักฐานโดยคลิกขวาและเลือกView Image Info
(ใน Firefox ... โดยวิธีการที่ภาพไม่แสดงในเบราว์เซอร์ใด ๆ ดังนั้นจึงไม่ใช่ข้อผิดพลาดเบราว์เซอร์)
สิ่งที่ฉันได้สังเกตเห็นคือType
ในกล่องข้อมูลภาพกำลังแสดงtext/html
มากกว่าPNG Image
หรือJPEG Image
อื่น ๆ นี่คือข้อมูลด้านล่างที่แสดงข้อมูลเส้นทาง (ที่อยู่) - ในส่วนนั้นมันรับรู้ว่าตัวไฟล์เอง เป็นType
อย่างใดอย่างหนึ่งหรือImage
Background
แต่แม้ว่าจะมีข้อเท็จจริงดังกล่าวปรากฏว่าแทนที่จะรับรู้ประเภท mime ที่ถูกต้อง (ฉันถือว่า) ของภาพภายใน html (อันที่จริงแล้ว php สร้าง html) แต่แทนที่จะพยายามประมวลผลภาพ (ไม่ว่าจะเป็นimg
องค์ประกอบหรือ css background-image
) แทน ข้อความและทำให้ฉันไม่มีอะไรเลย! แต่ฉันไม่สามารถหาสาเหตุได้ mime
ไฟล์ควบคุม Apache ประเภท MIME ที่ถูกต้อง หน้ามีส่วนหัวต่อไปนี้ ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... แต่สิ่งเหล่านั้นไม่ควรก่อให้เกิดปัญหา (ไม่ได้เกิดขึ้นเมื่อใช้งานบน XP หรืออยู่ในไซต์สด)
ดังนั้นฉันกำลังค้นหาความคิดใน:
- การวิเคราะห์ของฉันสำหรับประเภท mime นั้นเป็นปัญหาที่ถูกต้องหรือไม่ (จากการอัพเดทอาจไม่ได้)?
- ฉันจะดูที่อื่นที่อาจทำให้เกิดปัญหาและวิธีแก้ไขได้ที่ไหน อาจเป็นความขัดแย้งกับ IIS ใน WHS และถ้าเป็นเช่นนั้นจะเกิดอะไรขึ้น มันอาจจะเป็นอะไรก็ได้ใน php (มันไม่น่าเป็นไปได้) และถ้าเป็นเช่นนั้น ฉันจะตรวจสอบอะไรอีกใน Apache
อัปเดตข้อมูล (มีปัญหาเพิ่มเติม [ที่เกี่ยวข้อง?])
ทำบางอย่างมากขึ้น messing :8080
รอบฉันได้มาสรุปว่าอย่างน้อยส่วนหนึ่งของปัญหาที่ดูเหมือนว่าจะมีการเปลี่ยนแปลงไปยังพอร์ต ก่อนอื่นฉันมาตระหนักว่าไม่ใช่ทั้งหมดเช่นเดียวกับที่ฉันคิดในการเข้าถึงเว็บไซต์ทั้งหมดของฉัน ฉันมีการเป็นตัวแทนนี้ในc:\Windows\System32\drivers\etc\hosts
ไฟล์ของฉัน:
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
และการเป็นตัวแทนในvhosts
ไฟล์apache ของฉัน:
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>
นี่คือพฤติกรรม : site1
และsite4
จะปรากฏขึ้น แต่ไม่มีภาพ อีกสามคนจะไม่แสดงขึ้นเลย Network Error (dns_unresolved_hostname)
แต่ให้
อย่างไรก็ตามถ้าฉันเข้าถึงเว็บไซต์แรกใน vhosts บนเครื่อง WHS โดยใช้localhost:8080
ใน url รูปภาพก็จะปรากฏขึ้นและไซต์ใดก็ตามที่เป็นอันดับแรกในไฟล์ vhosts ของฉันก็จะปรากฏขึ้นเช่นกัน อย่างไรก็ตามมันจะเป็นเช่นนั้นแม้ว่าจะเป็นสิ่งที่ก่อนหน้านี้จะไม่ (ดังนั้นถ้าฉันย้ายsite2
ไปยังตำแหน่งแรกมันเริ่ม "ทำงาน" ผ่านการlocalhost:8080
โทร)
ฉันรู้ว่าไฟล์รูปภาพของฉันกำลังส่งคืนข้อผิดพลาด403
( แก้ไข แต่เดิมฉันพูดว่า 404 ) เมื่อเข้าถึงผ่านทางtest.site4.com
ไวยากรณ์ใน url และฉันสงสัยว่ารูปภาพของฉันจะปรากฏขึ้นtext/html
เนื่องจากไฟล์กำลังส่งคืนข้อผิดพลาดนั้น (ดังนั้นฉันไม่คิดว่าจะ เป็นปัญหาประเภท mime ในขณะนี้ความล้มเหลวในการค้นหาภาพ) แต่สิ่งที่แปลกก็คือพา ธ นั้นถูกต้องและไฟล์ที่ไม่ใช่รูปภาพ (javascript และ css) ก็กำลังดี
8080
ดังนั้นในใจของฉันมันดูเหมือนว่ามันอาจจะเป็นสิ่งที่มีสวิทช์พอร์ตเพื่อ ปัญหาของฉันตอนนี้คือ:
- เหตุใดไฟล์โฮสต์และโฮสต์ของฉันจึงไม่สามารถค้นหาเว็บไซต์ทั้งหมดได้อย่างถูกต้อง (มีไฟล์อื่นที่ฉันต้องแก้ไขใน Windows Home Server) หรือไม่
- ในเว็บไซต์เหล่านั้นใช้งานได้เพราะเหตุใดจึงไม่พบรูปภาพโดยเฉพาะ (โดยมีข้อผิดพลาด 403 นั่นคือ "ต้องห้าม" ฉันเชื่อว่าซึ่งไม่สมเหตุสมผลหากไฟล์อื่นในโฟลเดอร์เว็บไซต์ได้รับอนุญาตให้เข้าถึง)
- เหตุใดการ
localhost:8080
เข้าถึงจึงทำงานไม่ว่าจะเกี่ยวข้องกับสองประเด็นแรกอย่างไร
บางข้อมูลเพิ่มเติม
มีการร้องขอให้ฉันโพสต์ไฟล์บันทึก อย่างไรก็ตามฉันค้นพบว่าไม่มีบันทึกใด ๆ เกิดขึ้นยกเว้น (จะปรากฏขึ้น) ในกรณีเหล่านั้นเมื่อฉันเข้าถึงผ่านการlocalhost:8080
โทรโดยตรงไปยังไซต์ "เริ่มต้น"
ดังนั้นฉันจึงปิดบริการ WAMP และไปที่ URL และค้นพบพฤติกรรมเช่นเดียวกับเมื่อ WAMP ทำงานอยู่ ดูเหมือนว่านี่จะบ่งบอกว่า IIS ยังคงควบคุมชื่อโดเมนแทนที่จะ Apache หยิบมันขึ้นมา ( ใครบางคนสามารถยืนยันสมมติฐานของฉันที่นั่นได้ )และทำให้ปัญหาอาจเป็นสิ่งที่ยังคงมีอยู่ด้วยการควบคุมตัวเองไปยังเซิร์ฟเวอร์ WAMP