अपाचे को एक आईपी तक सीमित करें


13

मुझे IP पते के एक समूह के साथ एक सर्वर मिला है, और मैं केवल अपाचे को उनमें से एक पर सुनना चाहता हूं। यह करने के लिए एक कठिन बात की तरह नहीं लगता है, और मैंने इसे थोड़ी देर पहले एक बार किया है, लेकिन मुझे इस समय कुछ परेशानी हो रही है। सबसे पहले, यहाँ अब मैं अपनी समझ पर हूँ:

हर जगह अपाचे 80 पोर्ट को सुन रहा है, यह केवल सही आईपी पर सुन रहा है।

/etc/apache2$ grep -R ":80" .
./sites-available/default:<VirtualHost 192.168.0.82:80>
./httpd.conf:<VirtualHost 192.168.0.82:80>
./ports.conf:NameVirtualHost 192.168.0.82:80
./sites-enabled/000-default:<VirtualHost 192.168.0.82:80>

0.0.0.0 पर सुनने का कोई उल्लेख नहीं है।

/etc/apache2$ grep -R "0\.0\.0\.0" .

और फिर भी ... अपाचे शुरू करने से इनकार करता है।

/etc/apache2$ sudo /etc/init.d/apache2 start
 * Starting web server apache2
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
                                                                         [fail]

यदि कोई पूछता है, तो मैं उस पते पर नहीं हूँ:

/etc/apache2$ sudo netstat -nap | grep :80
tcp        0      0 192.168.0.83:80       0.0.0.0:*        LISTEN      2822/node

त्रुटि लॉग /var/log/apache2/error.logकेवल कहता है:

[Wed Aug 08 03:30:18 2012] [notice] caught SIGTERM, shutting down

क्या मुझे अपाचे के विन्यास में कोई स्थान नहीं मिला है? क्या कुछ ऐसा है जिसे मैं याद नहीं रख रहा हूँ? यह इतना सरल क्यों नहीं है जितना मुझे याद है कि यह होने के नाते?


1
मैं नाराज या कुछ भी नहीं कर रहा हूं, लेकिन क्या आप बता सकते हैं कि आपने इस सवाल का सबसे अच्छा जवाब कैसे चुना? आपके द्वारा चयनित उत्तर एक अन्य डिस्ट्रो का संदर्भ दे रहा था, जबकि उबंटू के संबंध में मेरा उत्तर स्पॉट-ऑन था। जब से आपने इसे नहीं चुना, क्या मैं किसी भी तरह से अपना जवाब अलग बना सकता था?
pauska

आपके दोनों जवाबों में महत्वपूर्ण Listen 192.168.0.82:80लाइन थी, जो मुझे चाहिए थी। मैंने cjc के उत्तर का चयन किया क्योंकि यह थोड़ा और गहराई में चला गया क्योंकि उस लाइन की आवश्यकता क्यों थी। मैंने सोचा कि अपाचे के संस्करण में इस्तेमाल की गई टिप्पणियों का उल्लेख करना जो सेंटो के साथ पैक किया गया है, एक अच्छा जोड़ था। लेकिन जब से सभी को सामान्य समझौते में लगता है कि जवाब को विराम देना चाहिए, मैंने आगे बढ़कर उसे दिया है। आखिरकार, मैंने उन संशोधनों को देखते हुए गौर किया जो पॉज़का की टिप्पणी ने अपने वर्तमान स्वरूप में cjc के उत्तर को काफी प्रभावित किया।
Dan

जवाबों:


18

अपाचे डिफ़ॉल्ट रूप से सब कुछ के लिए बांधता है, भले ही आप NameVirtualHost को चलाने के लिए कुछ IP (s) निर्दिष्ट करें।

इसे अपने ports.conf में जोड़ें:

Listen 192.168.0.82:80

संदर्भ: http://httpd.apache.org/docs/2.2/bind.html


16

एक नज़र डालें जो /etc/apache2/ports.confफ़ाइल।

आपको एक निर्देश मिलेगा:

Listen 80

CentOS बॉक्स पर टिप्पणी इस विकल्प का वर्णन करती है:

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80

आप जो चाहते हैं, उसके लिए Listen 80लाइन बदलें Listen 192.168.0.82:80

आप अपाचे को अभी शुरू नहीं कर पा रहे हैं क्योंकि यह सभी इंटरफेस (0.0.0.0 पदनाम) पर 80 पोर्ट को बांधने का प्रयास कर रहा है, और आप node192.168.0.83:80 पर सुन रहे हैं।

वर्चुअल होस्ट ब्लॉक में IP का अर्थ है कि उस वर्चुअल एड्रेस पर आने वाले अनुरोधों पर विशेष वर्चुअल होस्ट प्रतिक्रिया देगा। यह निर्दिष्ट नहीं करता है कि अपाचे इसके द्वारा देखे जाने वाले इंटरफेस से कैसे बंधेगा।


Httpd.conf उबंटू पर रिक्त है, क्योंकि वे कॉन्फ़िगरेशन फ़ाइलों की एक अलग शैली (बहुत सारे शामिल हैं) का उपयोग करते हैं। कोई भी "सुनो 80" या तो नहीं है, जैसा कि ओपी द्वारा दिखाया गया है।
pauska

1
अरे हाँ। उबंटू। मैं अपडेट करूंगा। grepवे कर रहे थे के खिलाफ था: 80 तो यह वैसे भी याद आती है बातें करने के लिए जा रहा था, के रूप में डिफ़ॉल्ट है Listen 80
ccc

1
कि CentOS टिप्पणी वास्तव में मेरी मदद की होगी। मूर्खतापूर्ण उबंटू ...
दान


0

अपाचे डॉक्स के अनुसार निम्नलिखित का उपयोग करें :

192.168.0.82:80 सुनें

कुछ परिस्थितियों में (सभी नहीं), कोई थोड़ा आगे बढ़ सकता है और यह कर सकता है:

कुछ_नाम_ सुनो_मी_लोचनहोस्ट: 80

इस तरह आप अपाचे सर्वर फ़ार्म होने पर अपनी अपाचे को परिस्थितियों में पोर्टेबल कॉन्फ़िगर करते हैं। इस के लिए पेशेवरों और विपक्ष हैं (जैसे सब कुछ के साथ।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.