लोकलहोस्ट OS X 10.6 को मल्टीपल IP एड्रेस असाइन करना


9

मैं एचटीटीपीएस सक्षम के साथ स्थानीय रूप से कई वेबसाइट होस्ट करने का प्रयास कर रहा हूं, लेकिन ऐसा करने के लिए मुझे लोकलहोस्ट (मुझे विश्वास है) के लिए कई आईपी पते का उपयोग करने के लिए अपनी स्थानीय मशीन को कॉन्फ़िगर करने की आवश्यकता होगी। क्या एक ही समय में कई आईपी पते स्थानीय स्तर पर हल करने का कोई तरीका है?

मैं OS X 10.6 (मानक संस्करण - सर्वर नहीं) और MAMP सर्वर सेटअप का उपयोग कर रहा हूं।

धन्यवाद!

जवाबों:


3

एक वेब सर्वर पर कई वेबसाइट होस्ट करने के लिए आपको कई आईपी की आवश्यकता नहीं है। आपको "वर्चुअल होस्ट" (यदि आपको इसकी आवश्यकता है तो https के साथ) का उपयोग करने की आवश्यकता है। यहाँ MAMP http://sawmac.com/mamp/virtual/ पर वर्चुअल होस्ट के लिए एक गाइड है


HTTPS के साथ कई साइटों को होस्ट करने के लिए मुझे विश्वास है कि उन्हें प्रत्येक को एक अलग आईपी पते की आवश्यकता है। देखें: stackoverflow.com/questions/11217538/…
user1086746

@ user1086746 Apache TLS सर्वर नेम इंडिकेशन का समर्थन करती है, जैसा कि सभी प्रमुख क्लाइंट ब्राउजर पर करते हैं .. बहुत ज्यादा हर ओएस जो कि विंडोज एक्सपी नहीं है। आपको अपने जुड़े हुए सवाल पर जो जवाब देना चाहिए था, वह सेट करना है NameVirtualHost *:443
शेन मैडेन

@Shane जो अभी भी एक ही आईपी पते पर HTTPS का उपयोग करते हुए कई साइटों के साथ काम करने के लिए प्रकट नहीं होता है। मैंने पोस्ट किया जो मेरे लिए काम करना खत्म कर दिया।
user1086746

@ user1086746 यह सबसे निश्चित रूप से काम करता है; यदि आप विशेष रूप से 127.0.0.1 पर बाध्यकारी थे तो मैं अनुमान लगा रहा हूं NameVirtualHostकि यह आपके <VirtualHost>ब्लॉक से मेल नहीं खाता । इस मामले में कोई बात नहीं है क्योंकि आपने एक कार्यशील समाधान ढूंढ लिया है, लेकिन NoNoNo सही है - आपको अतिरिक्त आईपी की आवश्यकता नहीं है।
शेन मैडेन

खैर, मैं यह काम 'सही ढंग से' करना चाहूंगा क्योंकि उन आईपी पते को स्थापित करना एक अतिरिक्त कदम है। मेरे पास 2 NameVirtualHosts हैं: NameVirtualHost *:80 NameVirtualHost *:443 और जैसे vhosts का उपयोग करने का प्रयास किया है: <VirtualHost _default_:443>और <VirtualHost 127.0.0.1:443>, और न ही पहले सूचीबद्ध vhost के बाद HTTPS कनेक्शन प्रदान करेगा। अगर आप रुचि रखते हैं तो मैं पूरा ssl.conf और vhost.conf फाइलें प्रदान कर सकता हूं!
user1086746

22

स्थानीय होस्ट करने के लिए, आप 'लूपबैक' बनाने के लिए इस टर्मिनल कमांड का उपयोग कर सकते हैं:

ifconfig lo0 alias 127.0.0.2

लोकलहोस्ट उर्फ ​​सेटअप के साथ, आप कई HTTPS वर्चुअल होस्ट बना सकते हैं:

<VirtualHost 127.0.0.1:443> ...... </VirtualHost>
<VirtualHost 127.0.0.2:443> ...... </VirtualHost>

रूट के क्रोन के माध्यम से, यदि वांछित हो, तो आप इन होस्ट्स को स्टार्टअप पर शुरू कर सकते हैं:

sudo crontab -e
@reboot ifconfig lo0 alias 127.0.0.2

उम्मीद है कि यह किसी को भी उन्हीं मुद्दों को चलाने में मदद करता है जो मैंने किए थे!


का उपयोग करना echo PASSWORDएक भयानक विचार है। एक कच्चे विकल्प के लिए रूट के क्रोन में कुछ डालना होगा sudo crontab -eऔर जैसे @reboot ifconfig lo0 alias 127.0.0.2। निश्चित रूप से एक अधिक सुरुचिपूर्ण समाधान है, लेकिन कुछ भी जो आपके पासवर्ड को सादे पाठ में शामिल करता है वह अस्वीकार्य है।
chacac

1
वाह, बहुत मज़ा आया! मैं इसे ssh पोर्ट फ़ॉरवर्डिंग के लिए उपयोग करता हूँ । यह अलग-अलग स्थानीय आईपी पते पर सुनकर एक ही पोर्ट को कई बार अग्रेषित करने की अनुमति देता है। जैसे ssh -L 127.0.0.2:443 foo:443 -L 127.0.0.3:443 beta.foo:443 user@host/etc/hostsयदि आवश्यक हो तो आप अपनी फ़ाइल में इन स्थानीय आईपी पतों को होस्ट नाम परिभाषित कर सकते हैं । वेब के विकास और परीक्षण / रीमोटिंग के लिए बहुत उपयोगी है, खासकर यदि आप अपने अनुप्रयोगों के लिए कस्टम पोर्ट का उपयोग नहीं कर सकते हैं।
djule5

2

आपको लिनक्स या विंडोज पर स्थानीय होस्ट में अतिरिक्त आईपी पते जोड़ने की आवश्यकता नहीं है। वे 127.0.0.0/8 से सभी आईपी पते पर, अतिरिक्त कॉन्फ़िगरेशन के बिना, डिफ़ॉल्ट रूप से जवाब देंगे:

$ ping 127.254.0.100
PING 127.254.0.100 (127.254.0.100) 56(84) bytes of data.
64 bytes from 127.254.0.100: icmp_seq=1 ttl=64 time=0.026 ms

तो बस अपने आवेदन को 127.0.0.0/8 रेंज से किसी भी आईपी पर सुनें और आप जाना अच्छा होगा।

उदाहरण:

एक कंसोल:

$ nc -vvl 127.0.34.2 9022
Connection from 127.0.0.1 port 9022 [tcp/*] accepted
Hello

एक और कंसोल:

$ echo Hello | nc -vv 127.0.34.1 9022
nc: connect to 127.0.34.1 port 9022 (tcp) failed: Connection refused
$ echo Hello | nc -vv 127.0.34.2 9022
Connection to 127.0.34.2 9022 port [tcp/*] succeeded!

एक टिप्पणीकार के रूप में, यह कहा गया है कि MacOS / डार्विन पर स्पष्ट रूप से स्थानीयहोस्ट इंटरफ़ेस में IP को जोड़ना आवश्यक है।


मैं लूपबैक इंटरफ़ेस पर उपनाम के बिना सुनने में सक्षम नहीं हो सकता। nc -vvl 127.0.34.2 9022रिटर्न की कोशिश कर रहा है nc: Can't assign requested address। के साथ परिभाषित उपनाम के साथ ifconfig lo0 alias 127.0.34.2, यह काम करता है। किसी भी विचार क्यों है? OSX Yosemite पर चल रहा है।
djule5

1
मैक में, केवल 127.0.0.1 को lo0 (लूपबैक) डिवाइस पर मैप किया जाता है। इसे काम करने के लिए आपको मैन्युअल रूप से उपनाम को लूपबैक डिवाइस में जोड़ने की आवश्यकता है। लेकिन लिनक्स में, सभी 127.0.0। * लूपबैक डिवाइस के लिए मैप किया गया है।
श्रीराम

1
मैक के लिए: sudo ifconfig lo0 alias 127.0.0.2 अप (और इसी तरह, प्रत्येक पते के लिए व्यक्तिगत रूप से किया जाना चाहिए)
lilalinux
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.