รับ Windows localhost (พอร์ต 80) เพื่อส่งต่อไปยังพอร์ต 8080 สำหรับบริการ Apache


9

การค้นพบล่าสุด

เมื่อ 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อย่างใดอย่างหนึ่งหรือImageBackground

แต่แม้ว่าจะมีข้อเท็จจริงดังกล่าวปรากฏว่าแทนที่จะรับรู้ประเภท 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 หรืออยู่ในไซต์สด)

ดังนั้นฉันกำลังค้นหาความคิดใน:

  1. การวิเคราะห์ของฉันสำหรับประเภท mime นั้นเป็นปัญหาที่ถูกต้องหรือไม่ (จากการอัพเดทอาจไม่ได้)?
  2. ฉันจะดูที่อื่นที่อาจทำให้เกิดปัญหาและวิธีแก้ไขได้ที่ไหน อาจเป็นความขัดแย้งกับ 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ดังนั้นในใจของฉันมันดูเหมือนว่ามันอาจจะเป็นสิ่งที่มีสวิทช์พอร์ตเพื่อ ปัญหาของฉันตอนนี้คือ:

  1. เหตุใดไฟล์โฮสต์และโฮสต์ของฉันจึงไม่สามารถค้นหาเว็บไซต์ทั้งหมดได้อย่างถูกต้อง (มีไฟล์อื่นที่ฉันต้องแก้ไขใน Windows Home Server) หรือไม่
  2. ในเว็บไซต์เหล่านั้นใช้งานได้เพราะเหตุใดจึงไม่พบรูปภาพโดยเฉพาะ (โดยมีข้อผิดพลาด 403 นั่นคือ "ต้องห้าม" ฉันเชื่อว่าซึ่งไม่สมเหตุสมผลหากไฟล์อื่นในโฟลเดอร์เว็บไซต์ได้รับอนุญาตให้เข้าถึง)
  3. เหตุใดการlocalhost:8080เข้าถึงจึงทำงานไม่ว่าจะเกี่ยวข้องกับสองประเด็นแรกอย่างไร

บางข้อมูลเพิ่มเติม

มีการร้องขอให้ฉันโพสต์ไฟล์บันทึก อย่างไรก็ตามฉันค้นพบว่าไม่มีบันทึกใด ๆ เกิดขึ้นยกเว้น (จะปรากฏขึ้น) ในกรณีเหล่านั้นเมื่อฉันเข้าถึงผ่านการlocalhost:8080โทรโดยตรงไปยังไซต์ "เริ่มต้น"

ดังนั้นฉันจึงปิดบริการ WAMP และไปที่ URL และค้นพบพฤติกรรมเช่นเดียวกับเมื่อ WAMP ทำงานอยู่ ดูเหมือนว่านี่จะบ่งบอกว่า IIS ยังคงควบคุมชื่อโดเมนแทนที่จะ Apache หยิบมันขึ้นมา ( ใครบางคนสามารถยืนยันสมมติฐานของฉันที่นั่นได้ )และทำให้ปัญหาอาจเป็นสิ่งที่ยังคงมีอยู่ด้วยการควบคุมตัวเองไปยังเซิร์ฟเวอร์ WAMP


ตรวจสอบให้แน่ใจว่ามีการตั้งค่าการอนุญาตสำหรับรูปภาพที่แท้จริงเพื่อให้สามารถเข้าถึงได้ .. เพียงแค่เดา
cutrightjm

@ ekaj - ฉันขอขอบคุณการเดาและการตรวจสอบสิทธิ์ แต่ดูเหมือนจะไม่ใช่ปัญหา
ScottS

@ ekaj - ฉันได้เพิ่มข้อมูลที่อัปเดตบางอย่างให้กับปัญหาของฉันซึ่งอาจช่วยคุณในการคิด "เดา" ที่แตกต่างออกไป (อาจเป็นวิธีแก้ปัญหา!)
ScottS

คุณแน่ใจหรือไม่ว่าการขอเส้นทางแอปพลิเคชันไม่ทำงาน blogs.iis.net/wonyoo/archive/2008/07/09/…ดูเหมือนจะทำสิ่งที่คุณถาม โปรดทราบว่าคุณอาจต้องการเขียนกฎหลายข้อเพื่อให้ตรงกับเว็บไซต์ต่างๆของคุณ
erikxiv

@ erikxiv - ไม่ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ ปัญหาของฉันคือความจริงที่ว่าฉันอยู่ในดินแดนที่ไม่คุ้นเคยกับฉันดังนั้นฉันจึงไม่รู้วิธีที่จะทำให้มันทำงานได้ถ้าทำได้ ฉันจะดูที่ลิงค์และกลับไปหาคุณ
ScottS

คำตอบ:


1

คุณอาจมีไฟล์. htaccess ที่ทำให้รูปภาพเป็นข้อความ / html หรือไม่

 <filesMatch "\.(htm|html|css|js|png|jpg)$">
 ForceType 'text/html; charset=UTF-8'
 </filesMatch>

คำแนะนำที่ดี แต่มีเว็บไซต์เพียงไม่กี่แห่งเท่านั้นที่มี.htaccessไฟล์และไม่มีForceTypeในโค้ด
ScottS

@ ScottWilson - ฉันได้เพิ่มข้อมูลที่อัปเดตบางอย่างให้กับปัญหาของฉันซึ่งอาจช่วยคุณในการหาวิธีแก้ไขปัญหาที่แตกต่างออกไป
ScottS

0

หากคุณสามารถให้ไฟล์ access.log ของคุณ (อย่างน้อยสองบรรทัดที่แสดงสถานะ 404 สำหรับคำขอภาพ) เราจะสามารถตรวจสอบสิ่งที่ผิดพลาดได้ ฉันสงสัยว่าอาจเป็นปัญหาชื่อโดเมนหรือเว็บไซต์ของคุณอาจใช้เส้นทางที่แน่นอนสำหรับรูปภาพ (เพียงเดา ... ) ซึ่ง apache จัดการไม่ถูกต้อง


น่าสนใจ ไม่มีไฟล์บันทึกสำหรับการพยายามเข้าถึงของฉันยกเว้นในกรณีที่ฉันใช้การlocalhostเข้าถึงโดยตรง ดังนั้นฉันจึงปิดเซิร์ฟเวอร์ WAMP ทั้งหมดเข้าด้วยกันและพบว่าฉันได้ผลลัพธ์เดียวกัน ซึ่งดูเหมือนว่าบ่งบอกว่า Apache ไม่ได้จัดการการร้องขอเริ่มต้น แต่ IIS คือ
ScottS

โดยวิธีการที่ผมพิมพ์ผิดก่อนหน้านี้ภาพจะให้ 403
สกอตส์

อาจจะเป็นการดีกว่าถ้าคุณต้องการใช้งานเบราว์เซอร์และตรวจสอบว่ามันถามอย่างนั้นหรือไม่ หรือตรวจสอบบันทึกข้อผิดพลาด apache หากไม่สามารถผูกกับพอร์ตหรือให้ปัญหาที่อยู่บางอย่าง ...
Martino Dino

@ MartinoDino - ขอบคุณสำหรับคำแนะนำของคุณ ฉันเพิ่งอัปเดตข้อมูลบางอย่างในคำถามของฉันที่ฉันเชื่อว่าตอนนี้ปัญหาหลักของฉันคือคอมพิวเตอร์ WHS ของฉันไม่ได้จัดการคำขอเว็บไซต์ทดสอบของฉัน แต่ดูเหมือนว่าพร็อกซี ISP ของฉันจะเป็นเช่นนั้น หากฉันได้รับการแก้ไขแล้วฉันจะเริ่มตรวจสอบว่าส่วนอื่น ๆ ในพื้นที่ของฉันใช้งานได้จริงหรือไม่
ScottS

0

การเปลี่ยนเส้นทาง IIS ไปยัง Apacheมีวิธีแก้ไขปัญหาที่ง่ายมากซึ่งจะไปในทิศทางตรงกันข้ามกับของคุณ

ผู้เขียนของรายการล่าสุดบอกว่าการเปลี่ยนเส้นทางใน IIS นั้น จำกัด เกินกว่าที่จะทำงานได้

คุณจะตั้งค่า IIS ให้รับคำร้องขอจากพอร์ตอื่นที่มากกว่า 80 ตัวอย่างเช่น 90 จากนั้นให้ Apache เป็นผู้รับสำหรับทั้งพอร์ต 80 และ 8080 โดยเปลี่ยนเส้นทางของพอร์ต 80 ไปยังพอร์ต 90 ดูเหมือนว่า Apache จะจัดการทำ สิ่งที่ IIS ไม่สามารถทำได้


@ harrymc - ขอบคุณสำหรับอินพุต ซึ่งอาจเป็นประโยชน์ แต่ถ้าคุณดูการอัปเดตล่าสุดของฉัน (เพิ่งโพสต์) ฉันค้นพบว่าปัญหาหลักแรกของฉันคือ URL ทดสอบไม่เคยส่งไปยังคอมพิวเตอร์ของฉัน แต่พยายามจัดการโดยฉัน ISP พร็อกซี หากคุณมีข้อเสนอแนะบางอย่างเกี่ยวกับการหลีกเลี่ยงสิ่งนั้นฉันเปิดใจ
ScottS

ที่อาจยังคงสอดคล้องกับข้อเสนอแนะของฉัน: IIS อาจไม่ฉลาดพอที่จะตรวจสอบว่า localhost เป็นอินเทอร์เฟซแบบวนรอบกลับโลคอลดังนั้นค้นหามันแทนบนอินเทอร์เน็ต แน่นอน localhost จะไม่พบที่นั่น ฉันไม่ได้มีสภาพแวดล้อมที่เหมาะสมสำหรับการทดสอบนี้ แต่บทความข้างต้นดูเหมือนจะบอกว่า Apache ทำงานได้อย่างชาญฉลาดมากขึ้น
harrymc

@ harrymc - ตามที่ฉันพูดถึงในคำถามของฉันฉันไม่ใช่คนเครือข่ายดังนั้นฉันจึงมีคำถามสองสามข้อและต้องการคำแนะนำเล็กน้อย อย่างแรกคือการเปลี่ยน WHS ของฉันเป็นพอร์ต 90 จะส่งผลกระทบต่อวิธีที่ WHS ทำหน้าที่เป็นเซิร์ฟเวอร์ภายในบ้านหรือไม่ ประการที่สองลิงค์ที่คุณโพสต์อ้างถึงพยายามเข้าถึงโดเมนย่อยในขณะที่ฉันไม่ได้ (แต่ฉันกำลังมองหาการเข้าถึงโดเมนท้องถิ่นที่แตกต่างกัน); เพื่อที่จะเปลี่ยนแปลงอะไร สำหรับคำแนะนำจากโซลูชันที่เชื่อมโยงฉันมีความรู้ Apache ดังนั้น # 4-5 ฉันติดตาม แต่ฉันมีความรู้เกือบ zilch IIS ดังนั้นคะแนน # 1-3 ฉันไม่แน่ใจว่าจะทำอย่างไร (หรือแม้แต่ในกรณีของฉันถ้าฉัน จำเป็นต้องทำ).
ScottS

# 2-3 อาจใช้ไม่ได้กับเคสของคุณและสามารถข้ามได้ จำเป็นต้องมี # 1 เนื่องจากเป็นแนวคิดหลัก เคล็ดลับที่นี่คือการทำให้ Apache เป็นเซิร์ฟเวอร์หน้าอินเทอร์เน็ตหลักที่รับผิดชอบการส่งต่อและ IIS เป็นเซิร์ฟเวอร์สำรองและท้องถิ่นที่ไม่ได้เชื่อมต่อกับอินเทอร์เน็ตยกเว้นผ่าน Apache บางทีบทความนี้อาจช่วยเปลี่ยนพอร์ตได้ หากคุณไม่เคยทำสิ่งนี้มาก่อนให้จดบันทึกทุกสิ่งที่คุณเปลี่ยนแปลงอย่างระมัดระวังในกรณี
harrymc

@ harrymc - เมื่อทำการเปลี่ยนแปลงฉันไม่สามารถรับเซิร์ฟเวอร์ WAMP ของฉันเพื่อเริ่มต้นได้ ไม่แน่ใจว่าทำไม แต่ในปัจจุบันมันป้องกันการทดสอบเต็มรูปแบบที่จะรู้ว่ามันจะไปทำงาน ฉันยังสงสัยว่าในลิงค์แรกourdomain.domเป็นสิ่งที่เฉพาะเจาะจงกับคอมพิวเตอร์ของฉันหรือไม่ (หรือเป็นเพียงชื่อโดยพลการเนื่องจากเขาจัดการกับโดเมนย่อย ... ฉันควรเป็นlocalhostอย่างไร) นอกจากนี้ในลิงค์แรกour.ip.addessการกำหนดเส้นทางไปยัง IIS จะเหมือนกันสำหรับเซิร์ฟเวอร์ Apache เนื่องจากอยู่บนคอมพิวเตอร์เครื่องเดียวกัน (มีพอร์ตที่แตกต่างกัน) นั่นไม่ควรทำให้เกิดปัญหาใช่ไหม
ScottS

0

เนื่องจากคุณได้ติดตามปัญหานี้ถึงปัญหา DNS ผลลัพธ์พื้นฐานคือคุณต้องมีเซิร์ฟเวอร์ DNS ในตัวเครื่องที่คุณสามารถกำหนดค่าได้ คุณยังพูดถึงเราเตอร์ Linksys E1200 และ Windows Home Server ดังนั้นจึงมีสองวิธีที่คุณสามารถทำได้

ขั้นแรกคุณสามารถพิจารณาใช้เฟิร์มแวร์ของบุคคลที่สาม (เช่น DD-WRT, OpenWRT, Tomato) บนเราเตอร์ของคุณ สิ่งที่คุณใช้คือชิปเซ็ต Broadcom และควรมีแฟลชเพียงพอ DD-WRT แสดงรายการว่ารองรับ ความกังวลที่ยิ่งใหญ่ที่สุดของฉันคือชุมชนเฟิร์มแวร์เราเตอร์ของบุคคลที่สามนั้นดูเหมือนจะพังทลายลงมาจนถึงจุดที่มันพยายามเรียกใช้ Linux ในช่วงต้นทศวรรษ คุณสามารถลองขุดผ่านฟอรัมเพื่อค้นหาสิ่งที่คุณต้องการ แต่ไม่ควรเชื่อถือฐานข้อมูลเราเตอร์ในเว็บไซต์ DD-WRT เพราะมันจะพาคุณไปยังสิ่งที่ผิด โดยรวมแล้วตัวเลือกนี้ไม่สามารถเติมความมั่นใจให้ฉันได้และถ้าคุณไม่มีเราเตอร์ตัวที่สองฉันไม่แน่ใจว่าฉันจะสามารถแนะนำได้เว้นแต่คุณจะชอบการปรับแต่งสิ่งนี้

ประการที่สองคุณสามารถ RDP เป็น WHS และเปิดเซิร์ฟเวอร์ DNS ตามที่อธิบายไว้ในกระทู้ในฟอรัมนี้. วิธีการพื้นฐาน, RDP ใน, แผงควบคุม, เพิ่ม / ลบโปรแกรม, เพิ่ม / ลบส่วนประกอบ Windows (ปุ่ม), เลือกช่องทำเครื่องหมาย DNS Server, กลับไปที่เดิม สิ่งที่ฉันไม่แน่ใจคือคุณได้รับคอนโซลการจัดการ DNS ด้วยหรือไม่และฉันไม่มีกล่อง WHS เพื่อทดสอบ หากคุณได้รับคอนโซลนั้นจะอยู่ภายใต้เครื่องมือการดูแลระบบ / DNS หากต้องการใช้ตามที่คุณต้องการคุณจะต้องเพิ่มโซนการส่งต่อใหม่ สำหรับสิ่งที่คุณกำลังทำฉันจะเพิ่มโซนสำหรับแต่ละโฮสต์ (เช่นเพิ่มโซนสำหรับ www.samplesite.whething) จากนั้นเพิ่มรายการบันทึก A โดยไม่มีชื่อระบุซึ่งจะทำให้เป็นค่าเริ่มต้นสำหรับสิ่งนั้น โซน. อีกวิธีคือการเพิ่มโซนสำหรับ samplesite แล้วเพิ่มชื่อ A records (เช่น "www" หรือ "mail") แต่นั่นอาจเป็นการปิดกั้นสิ่งที่คุณไม่ต้องการถูกบล็อก โซนที่กำหนดเป้าหมายเพิ่มเติมจะป้องกันไม่ให้คุณมีผลกระทบต่อสิ่งที่คุณไม่ต้องการเปลี่ยนเส้นทาง จากนั้นคุณจะชี้ระบบทั้งหมดของคุณที่ช่องนี้เป็นเซิร์ฟเวอร์ DNS โดยค่าเริ่มต้นนี้จะทำการแก้ไข DNS ภายนอกของตนเองโดยสมบูรณ์ผ่านเซิร์ฟเวอร์ DNS ของ ISP ของคุณ หากคุณต้องการใช้ที่อยู่เหล่านี้เป็นขั้นตอนต่อไปคุณสามารถระบุที่อยู่ของพวกเขาเป็นตัวส่งต่อในคุณสมบัติเซิร์ฟเวอร์ DNS (คลิกขวาและตามล่า)

ข้อสามถ้าตัวเลือกที่สองไม่ทำงานและตัวเลือกหนึ่งทำให้คุณกลัวคุณสามารถตั้งค่ากล่อง Linux ภายในและตั้งค่าเป็นเซิร์ฟเวอร์ DNS มีคำแนะนำมากมายเกี่ยวกับวิธีการทำเช่นนั้น การค้นหาคร่าวๆปรากฏขึ้นโดย Mark Kolichซึ่งดูเหมือนจะเป็นคำแนะนำที่เหมาะสมในการทำสิ่งนั้น หากคุณมีความโน้มเอียงอย่างนี้ก็อาจมอบทรัพยากรที่คุณต้องใช้ในการทดสอบกับโฮสต์บน Linux (เว้นแต่ว่าคุณกำลังพัฒนาบน Windows เช่น. NET หรือที่คล้ายกัน)

การเปรียบเทียบเซิร์ฟเวอร์ DNS ของ Wikipediaนี้อาจมีการใช้งานเช่นกัน สิ่งที่เป็นไปได้คือ Simple DNS Plus (เพื่อการค้า), Posadis (ฟรี, ค้างเมื่อไร? 2004), MaraDNS (ฟรี, ไม่ใช่ GUI, คุ้มค่าที่จะดู), และ Unbound (ฟรี, มีดาวน์โหลดไบนารี Windows, ไม่ขุดเพิ่มเติม) . สิ่งเหล่านี้ควรทำงานบน Windows


ขอบคุณสำหรับคำตอบ. ในขณะที่มันเป็นความจริงที่ว่ามันเป็นปัญหา DNS ในบางแง่มุมสิ่งที่ฉันต้องการสำหรับการโทรในพื้นที่ใด ๆ ที่ไม่ได้ไปที่ DNS ของ ISP ของฉันจะเริ่มต้นด้วย (มันไม่ควร) ดูเหมือนว่า "overkill" อย่างใดที่จะต้องตั้งค่า DNS ในเครื่องเพื่อจัดการกับสิ่งที่ควรได้รับการจัดการแล้วโดยอัตโนมัติโดยระบบ คำขอของฉันสำหรับไซต์ localhost ไม่ควรแม้แต่จะไปที่ ISP DNS ของฉัน
ScottS

หากคุณเพิ่มบรรทัดที่เกี่ยวข้องไปยังไฟล์ Local Hosts พวกเขาอาจจะไม่ - บน XP มันอยู่ใน c: \ windows \ system32 \ drivers \ etc \ hosts ไม่แน่ใจว่ามันอยู่ที่ไหนใน Vista / 7 และแตกต่างกันระหว่าง 32- หรือไม่ และ 64 บิต ฉันได้เห็นแอพหรือสถานการณ์ข้อผิดพลาดบางอย่างที่สามารถแตกได้ดังที่ระบุไว้ที่นี่: fencepost.net/2009/11/dns-fails-nslookup-works-fix
fencepost

ฉันได้เพิ่มบรรทัดเหล่านั้นไปยังตำแหน่งนั้น (ตั้งแต่เริ่มต้น) แต่ฉันสงสัยว่ามันเป็นตำแหน่งที่ถูกต้องในระบบ 64 บิต (ซึ่งเป็น WHS)
ScottS

คำถามของคุณทำให้ฉันต้องขุดอีกเล็กน้อยและสิ่งนี้ ( sepago.de/helge/2009/06/04/… ) ดูเหมือนจะมีความเกี่ยวข้องมาก
fencepost

นั่นเป็นเรื่องที่น่าสนใจ แต่ฉันไม่แน่ใจว่ามีประโยชน์อย่างไรเนื่องจากC:\Windows\System32\drivers\etcไฟล์ดังกล่าวเป็นไฟล์ที่ฉันแก้ไขแล้ว แต่ก็ดูเหมือนว่าจะไม่ได้รับการเลือกเท่าที่กำหนดไซต์ในพื้นที่ของฉัน บทความนี้ดูเหมือนจะบ่งบอกว่าไฟล์นั้นถูกใช้โดย64-bitกำเนิดและ32-bitโดยการเปลี่ยนเส้นทาง สิ่งนี้จะส่งผลกระทบต่อการติดตั้ง Apache ของฉันอย่างไรและเพราะเหตุใดจึงlocalhostถูกเพิกเฉยต่อไซต์ท้องถิ่นของฉัน
ScottS

0

คุณต้องมี

<directory>
</directory>

ก่อนที่ </VirtualHost>จะอนุญาต

อะไรแบบนี้

<Directory "C:\Apache24\htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

ฉันใช้ 192.168.1.100:80 สำหรับ iis และ 192.168.1.200:8080 สำหรับ apache ใน Internet Protocol v4 IPv4 การตั้งค่า (การตั้งค่า IP ขั้นสูง) มี 2 คลาส C ip 192.168.1.100 และเพิ่ม 192.168.1.200 ซึ่งช่วยในการทำ SEO เพราะระดับ C ip แอดเดรสสำหรับ 2 เว็บไซต์ที่ต่างกันเชื่อมโยงถึงกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.