हाल ही में डिस्कवरी
IIS के पोर्ट पर वापस सेट होने के साथ 80, जब मैं http://localhost/WHS कंप्यूटर पर डालता हूं , तो यह मुझे "इस वेबसाइट के सुरक्षा प्रमाणपत्र के साथ एक समस्या है" चेतावनी पृष्ठ देता है। अगर मैं "जारी रखें" वैसे भी, इस यूआरएल ऊपर आता है https://localhost/Remote/logon?ReturnUrl=%2fremoteएक के लिए एक Windows होम सर्वर 2011 दूरस्थ वेब एक्सेस के लिए usernameऔर password। अब, मैं निश्चित रूप से याद नहीं कर सकता, लेकिन मुझे विश्वास नहीं है कि मूल रूप से सिर्फ http://localhost/इस मुद्दे को लाया गया था। हालाँकि, ऐसा लगता है कि यह लोकलहोस्ट (पोर्ट कोई फर्क नहीं पड़ता) तक पहुँचने के किसी भी प्रयास को प्रभावित कर सकता है।
वास्तव में मुख्य मुद्दा क्या हो सकता है
ओह नेटवर्किंग की पेचीदगियों! एक बात जो मुझे परेशान करती थी, वह यह थी कि दो साइटें "आंशिक रूप से" ऊपर आएंगी, और अन्य बिल्कुल नहीं। फिर, फायरबग की नेट ट्रैकिंग चलाने से मुझे पता चला कि मेरा मुख्य मुद्दा यह है कि मेरा आईएसपी DNS प्रॉक्सी के रूप में काम कर रहा है , और निश्चित रूप से यह मेरे परीक्षण साइटों को नहीं ढूंढ रहा है। लेकिन यह दो साइटों है कि कम से लाइव कर रहे हैं करता है www.(नहीं test.) पता है, और उन तक सेवा के लिए प्रकट होता है, लेकिन छवियों ब्लॉक किए गए हैं क्योंकि (मुझे लगता है) मैं से नहीं तो छवि फ़ाइलों तक पहुँचने के लिए ब्लॉक की स्थापना की है www.के लिए विशेष साइट।
यह उन चित्रों के रहस्य को दर्शाता है जो प्रत्यक्ष नहीं दिखाते हैं (प्रत्यक्ष localhost:8080कॉल पर उम्मीद करते हैं) और "आंशिक रूप से" पांच स्थानों के उन विशिष्ट दो को खोजने में अजीब व्यवहार।
अब मुझे यह पता लगाने की आवश्यकता है कि मेरे WHS कंप्यूटर पर वापस रीडायरेक्ट करने के लिए मेरे राउटर या प्रॉक्सी फ़ाइल को कैसे सही ढंग से कॉन्फ़िगर किया जाए। मैं वाइल्डब्लू उपग्रह इंटरनेट सेवा पर हूं, क्योंकि मैं किसी भी तेज सेवा कनेक्शन के क्षेत्र से बाहर हूं। उनके पास एक "ऑप्टिमाइज़र" फ़ाइल है (मुझे नहीं पता कि यह सभी के लिए देखने योग्य है या नहीं, यदि नहीं, तो यह मूल रूप से इस संस्करण के समान है ), जिसे मैं संशोधित करने और अपने स्थानीय सिस्टम को प्राप्त करने में सक्षम हो सकता हूं मुझे क्या चाहिए, लेकिन मैं अनिश्चित हूं कि मुझे वहां क्या करना पड़ सकता है।
यदि किसी के पास उस फ़ाइल को संशोधित करने के बारे में कोई सुझाव है, या प्रॉक्सी को भेजने से बचने के लिए मेरे लिंकेज E1200 राउटर को कैसे कॉन्फ़िगर किया जाए यदि यह एक स्थानीय साइट है, तो वह मेरे मुद्दों को हल करने के लिए पहला (और संभवतः अंतिम) कदम हो सकता है।
हैरिमेक की सिफारिशों के आधार पर प्रतिनिधि कोड ... अभी भी काम नहीं कर रहा है
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 होम सर्वर (IIS को चलाने) को विशिष्ट लोकलहोस्ट URL के पोर्ट के लिए कैसे आगे बढ़ा सकता हूं 8080ताकि Apache (IIS नहीं) उसी मशीन पर चल रहा हो, पेज की सेवा के लिए अनुरोध करता है?
c:\Windows\System32\drivers\etc\hostsफ़ाइल बदल दिया गया है (नीचे देखें), लेकिन मुझे लगता है कि एक नए बंदरगाह को पुनः मार्ग निर्माण के साथ कोई संबंध नहीं है। IIS, मैं भी मानता हूं, test.whateverपोर्ट पर विशेष रूप से url अनुरोध उठा रहा है 80और उसी पोर्ट पर अपने स्वयं के स्थानीय होस्ट को रूट कर रहा है।
मैंने शोध में पाई गई एक साइट पर एक टिप से रूटिंग रिक्वेस्ट डाउनलोड की , लेकिन इसे देखते हुए, मुझे यकीन नहीं है कि यह मदद करेगा या नहीं (मेरी आशा है कि इसके द्वारा पोर्ट करने के लिए कुछ यूआरएल आधारित अग्रेषण स्थापित किया गया था )। मैं एक वेब डिज़ाइनर हूं, नेटवर्क जादूगर नहीं। तो यह सब कैसे कुछ हद तक मेरे लिए मायावी है।8080
जाने के लिए एक संभावित दिशा
इस लिंक के आधार पर (नीचे दी गई पहली टिप्पणी के बाद और अधिक खोज करने के बाद पाया गया) मैंने 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)
लेकिन अभी भी कोई अग्रेषण प्रतीत नहीं होता है!
नीचे दी गई जानकारी अब नए, उपरोक्त सभी अनुरोधों के पीछे की पृष्ठभूमि है।
पृष्ठभूमि की जानकारी
मैंने हाल ही में एक पुराने डेस्कटॉप को बदल दिया है जो विंडोज होम सर्वर (2011) होने के लिए विंडोज एक्सपी चला रहा था। पुराना कंप्यूटर अपाचे इंस्टॉल पर चलने वाले स्थानीय परीक्षण साइटों के लिए भी होस्ट था। कुछ शोध करने से पता चला कि WHS मशीन पर अपाचे चलाना उतना मुश्किल नहीं होगा जितना कि मैंने पहले सोचा था (कई साइटें कहती हैं कि WHS और Apache के IIS मुद्दों का कारण बनेंगे, लेकिन कुछ ने पाया कि अगर सही तरीके से सेट किया गया तो मुझे कोई समस्या नहीं हुई। (कभी-कभी, सुनिश्चित करें कि कोई पोर्ट संघर्ष नहीं है)।
इसलिए मैंने WHS कंप्यूटर में एक WAMP (64-बिट संस्करण) स्थापित किया, और Apache httpdconfig फाइल में सेटिंग्स को पोर्ट पर सुनने के लिए बदल दिया 8080ताकि IIS के साथ कोई विरोध न हो। मैंने अपनी वर्चुअल होस्ट फ़ाइल को XP कंप्यूटर पर सेट किया, केवल पोर्ट चेंज के साथ।
मूल रूप से, सब कुछ ठीक लग रहा था (हालाँकि, अपडेट देखें), सिवाय ...
(मूल) मुद्दा
हालांकि स्थानीय साइटों के पृष्ठ ठीक हैं, और सभी सीएसएस और जावास्क्रिप्ट काम कर रहे हैं, हर छवि फ़ाइल नहीं दिख रही है । पथ की जानकारी सही है जैसा कि सही क्लिक करने और चयन करने से पता चलता है View Image Info(फ़ायरफ़ॉक्स में ... वैसे, छवियां किसी भी ब्राउज़र में नहीं दिखाई देती हैं, इसलिए यह ब्राउज़र बग नहीं है)।
हालांकि, मैंने जो देखा है, वह यह है कि Typeछवि जानकारी बॉक्स में प्रदर्शित हो रहा है text/html, बजाय PNG Imageया JPEG Imageआदि। यह नीचे दी गई जानकारी में है जहां यह पथ (पता) जानकारी दिखाता है - उस अनुभाग में, यह पहचानता है कि फ़ाइल स्वयं की है Typeया तो Imageया Background।
लेकिन इस तथ्य के बावजूद, ऐसा प्रतीत होता है कि HTML के भीतर की छवि के सही माइम-प्रकार (मुझे लगता है) को पहचानने के बजाय (वास्तव में html उत्पन्न HTML), यह बजाय छवि को संसाधित करने की कोशिश कर रहा है (चाहे एक imgतत्व या सीएसएस background-image) पाठ, और इस तरह मुझे कुछ भी नहीं दे रहा है! लेकिन मैं यह क्यों नहीं समझ सकता। mimeApache माइम-प्रकार को नियंत्रित करने वाली फ़ाइल सही है। पृष्ठों में निम्नलिखित शीर्ष लेख हैं ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... लेकिन उन लोगों को समस्या का कारण नहीं होना चाहिए (वे XP पर चलने पर नहीं थे, न ही वे लाइव साइट पर हैं)।
इसलिए मैं इस पर विचार कर रहा हूं:
- क्या माइम-प्रकार का मेरा विश्लेषण मुद्दा सही है (अद्यतन के आधार पर, शायद नहीं)?
- मैं और कहां देख सकता हूं कि यह समस्या पैदा कर सकता है, और इसे कैसे ठीक किया जाए? क्या यह अभी भी डब्ल्यूएचएस पर आईआईएस के साथ संघर्ष हो सकता है, और यदि हां, तो क्या? क्या यह php में कुछ भी हो सकता है (यह संभावना नहीं लगती है), और यदि हां, तो क्या? मैं अपाचे में और क्या देख सकता हूं?
अद्यतित जानकारी (अधिक [संबंधित?] मुद्दे)
आसपास कुछ और गड़बड़ करते हुए, मैं इस नतीजे पर पहुंचा हूं कि इस मुद्दे का कम से कम हिस्सा पोर्ट में बदलाव प्रतीत होता है :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फ़ाइल में यह प्रतिनिधित्व :
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)।
हालांकि, अगर मैं का उपयोग करके WHS मशीन पर vhosts में पहली साइट पर पहुँच localhost:8080यूआरएल में, तो छवियों करते दिखाई है, और जो भी साइट को मेरी vhosts फ़ाइल में प्रथम है भी दिखाता है (जो की उम्मीद है); हालाँकि, ऐसा तब भी होता है जब यह एक था जो पहले नहीं था (इसलिए यदि मैं site2पहली स्थिति में जाता हूं , तो यह localhost:8080कॉल के माध्यम से "काम करना" शुरू करता है )।
मुझे पता है कि मेरी छवि फाइलें एक 403( सही, मूल रूप से मैंने 404 ) त्रुटि को तब लौटाया है जब test.site4.comयूआरएल में सिंटैक्स के माध्यम से प्रवेश किया गया था, और मुझे संदेह है कि मेरी छवियां text/htmlइसलिए दिखाई दे रही हैं क्योंकि फाइलें उस त्रुटि को वापस कर रही हैं (इसलिए मुझे नहीं लगता कि यह है) अब माइम-प्रकार का मुद्दा है जो छवियों को खोजने में विफलता है)। लेकिन अजीब बात यह है कि रास्ते सही हैं, और गैर-छवि फाइलें (जावास्क्रिप्ट और सीएसएस) ठीक आ रही हैं।
तो मेरे दिमाग में ऐसा लगता है कि शायद पोर्ट स्विच के साथ कुछ है 8080। मेरे मुद्दे अब हैं:
- मेरे होस्ट और vhosts फाइलें सभी साइटों को सही ढंग से क्यों नहीं ढूंढ रही हैं (क्या कोई अन्य फाइल है जिसे मुझे विंडोज होम सर्वर पर संशोधित करने की आवश्यकता है)?
- उन साइटों पर यह काम करता है, क्यों छवियों को विशेष रूप से नहीं मिलता है (403 त्रुटि के साथ, यह "निषिद्ध" है मेरा मानना है, जिसका कोई मतलब नहीं है कि वेबसाइट के फ़ोल्डर्स में अन्य फ़ाइलों को एक्सेस की अनुमति दी जा रही है)?
localhost:8080पहले दो मुद्दों के संबंध में पहुंच क्यों काम नहीं करती है?
कुछ और जानकारी
मुझे लॉग फाइल पोस्ट करने के लिए एक अनुरोध किया गया था। हालाँकि, मुझे पता था कि उन उदाहरणों को छोड़कर कोई लॉग नहीं था (यह प्रतीत होता है) जब मैंने डायरेक्ट localhost:8080कॉल के माध्यम से "डिफ़ॉल्ट" साइट पर पहुँचा था ।
इसलिए मैंने WAMP सेवाओं को बंद कर दिया, और url के पास गया और उसी व्यवहार की खोज की जब WAMP चल रहा था। यह इंगित करने के लिए प्रतीत होता है कि IIS अभी भी डोमेन नामों को नियंत्रित कर रहा है, अपाचे के बजाय उन्हें उठा रहा है ( क्या कोई मेरी धारणा की पुष्टि कर सकता है? ) , और इस प्रकार यह मुद्दा अभी भी WAMP सर्वर पर नियंत्रण प्राप्त करने के साथ ही कुछ हो सकता है।