सवाल मैं अपाचे वेब सर्वर को दो अलग-अलग बंदरगाहों पर कैसे सुनूं?


मैं पोर्ट 80 और पोर्ट 8080 पर सुनने के लिए घर पर स्थापित अपाचे वेब सर्वर चाहता हूं।

मैंने जोड़ लिया है Listen 8080 httpd.conf पर और अपाचे सेवाओं को पुनरारंभ किया लेकिन सर्वर 8080 पर नहीं सुन रहा है। इसमें पंचिंग http: // localhost: 8080 समय निकालता है और मेरा index.html प्रदर्शित नहीं करता है लेकिन http: // स्थानीय होस्ट मेरा index.html प्रदर्शित करेगा।

मैं इसे 80 और 8080 कैसे सुनूं?


41
2018-06-18 14:32


मूल


आपको लगता है कि यह पोर्ट 8080 पर क्यों नहीं सुन रहा है? यह आपके कॉन्फ़िगरेशन के स्निपेट पोस्ट करने के लिए भी उपयोगी हो सकता है। - David Z
क्या आपने http.conf को संपादित करने के बाद अपाचे को पुनरारंभ किया था? - Dana the Sane
@ डेविड मैंने यह दिखाने के लिए अपना प्रश्न अपडेट कर दिया है कि मुझे लगता है कि यह 8080 पर क्यों नहीं सुन रहा है। अभी httpd.conf तक पहुंच नहीं है। @ दाना - हाँ। - Owen


जवाब:


अपाचे के मानक डेबियन इंस्टॉलेशन में निम्न कॉन्फ़िगरेशन का खंड होगा:

80 सुनो

<IfModule mod_ssl.c>
    # एसएसएल नाम आधारित वर्चुअल होस्ट अभी तक समर्थित नहीं हैं, इसलिए नहीं
    # नाम वर्चुअल यहाँ कथन
    443 सुनो
</ IfModule>

यह पोर्ट 80 पर सुनने के लिए अपाचे बता रहा है और अगर mod_ssl कॉन्फ़िगर किया गया है तो पोर्ट 443 को सुनें। आपके मामले में आप चाहते हैं:

Listen 80
Listen 8080

आपको यह सुनिश्चित करने की ज़रूरत है कि आप पुन: प्रारंभ करें, नए सुनवाई निर्देशों पर ध्यान देने के लिए अपाचे पर एक रीलोड ऑपरेशन न करें। सबसे सुरक्षित बात यह है कि अपाचे को रोकना, सुनिश्चित करें कि यह मर चुका है और इसे फिर से शुरू करें।

यदि यह कॉन्फ़िगरेशन काम नहीं करता है, तो किसी भी त्रुटि संदेशों के लिए लॉग फ़ाइलों को जांचें। पोर्ट 8080 पर कुछ भी सुन रहा है या नहीं, यह देखने के लिए आप "netstat -lep --tcp" का उपयोग कर सकते हैं। आखिरकार, अगर बाकी सब कुछ काम नहीं करता है, तो यह देखने के लिए कि क्या वह उस बंदरगाह से बांधने और असफल होने की कोशिश कर रहा है, लेकिन समस्या को लॉगिंग नहीं कर रहा है।


57
2018-06-18 15:11



अपाचे 2.4 में यह कॉन्फ़िगरेशन खंड कहाँ पाया जा सकता है? धन्यवाद। - Luís de Sousa
अपने स्वयं के प्रश्न का उत्तर दें: /etc/apache2/ports.conf। - Luís de Sousa


ये जवाब बहुत अच्छे हैं, लेकिन वे ओवेन की संभावना को छोड़ देते हैं है वास्तव में यह पहले से ही किया है ("मैंने जोड़ा है Listen 8080") का अर्थ यह हो सकता है कि यह कैसा लगता है (यानी, डेविड ने क्या सुझाव दिया है)।

यदि आपने पहले से ही यह किया है और अभी भी यह काम नहीं कर रहा है, तो सुनिश्चित करें कि आपने प्रत्येक सबडोमेन के लिए अपने निर्देशों को सही तरीके से कॉन्फ़िगर किया है, जिसमें डिफ़ॉल्ट हो सकता है (यदि इसे मैन्युअल रूप से कॉन्फ़िगर किया गया है: 80 नाम के ठीक बाद)।

आपके पास शायद इस तरह का निर्देश है:

<VirtualHost *:80>
 ServerName michaelsanford.com
 etc…
</VirtualHost>

आपको इसे बदलने की जरूरत है <VirtualHost *:8080> या <VirtualHost *:*>


7
2018-06-18 15:19



मुझे संदेह है कि यह मेरी समस्या है। मुझे लगता है कि एक <वर्चुअलहोस्ट *: 80> निर्देश है। मुझे यह जांचना होगा। - Owen
यदि आपके पास वर्चुअल होस्ट नहीं है, तो आपको वैश्विक दस्तावेज़ रूट से सामग्री परोसा जाएगा, जो शायद आपको मानक इंडेक्स.html, एक निर्देशिका अनुक्रमणिका पृष्ठ, 404 या 403 त्रुटि देगा। यह समय नहीं होगा। - David Pashley
लगता है जैसे आपके पास फ़ायरवॉल है जो चुपचाप पैकेट छोड़ रहा है। - msanford
जैसा कि यह पता चला है, यह फ़ायरवॉल मुद्दा था। - Owen


चरण 1

#vi httpd.conf
Listen 80

<IfModule mod_ssl.c>
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    Listen 443
</IfModule>

पोर्ट 80 पर सुनने के लिए httpd (apache) और पोर्ट 443 को सुनने के लिए यदि mod_ssl कॉन्फ़िगर किया गया है।

Listen 80
Listen 8080

चरण 2

#su - service httpd restart

चरण 3

$ netstat -lntp

(सभी प्रक्रियाओं की पहचान नहीं की जा सकती, गैर-स्वामित्व वाली प्रक्रिया की जानकारी  दिखाया नहीं जाएगा, आपको इसे देखने के लिए रूट होना होगा।)

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:47027               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 192.168.1.1:80              0.0.0.0:*                   LISTEN      -                   
tcp        0      0 192.168.1.1:8080            0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 ::ffff:127.0.0.1:45100      :::*                        LISTEN      3149/java           
tcp        0      0 :::111                      :::*                        LISTEN      -                   
tcp        0      0 :::80                       :::*                        LISTEN      -                   
tcp        0      0 :::57173                    :::*                        LISTEN      3149/java           
tcp        0      0 :::18197                    :::*                        LISTEN      3149/java           
tcp        0      0 :::22                       :::*                        LISTEN      -                   
tcp        0      0 ::1:631                     :::*                        LISTEN      -                   
tcp        0      0 :::40832                    :::*                        LISTEN      3149/java           
tcp        0      0 ::ffff:127.0.0.1:6880       :::*                        LISTEN      3149/java       

5
2018-06-18 16:38





आप यह भी देखना चाहते हैं कि आपके पास SELinux सक्षम है या नहीं। डिफ़ॉल्ट SELinux कॉन्फ़िगरेशन आपको गैर-मानक बंदरगाहों पर अपाचे चलाने की अनुमति नहीं दे सकता है। यहां एक ऐसी साइट है जो आपको दिखाती है कि क्या आप SELinux चला रहे हैं और इसे अक्षम कैसे करें, अगर आप इसकी सुविधाओं को नहीं चाहते हैं या उपयोग नहीं करते हैं। http://www.crypt.gen.nz/selinux/disable_selinux.html


0
2018-06-18 15:24



या आप SELinux को छोड़ सकते हैं, यदि आप एक आधुनिक SELinux सिस्टम पर हैं तो देखें कि बंदरगाहों को एक सेमेज पोर्ट-एल के साथ कैसे लेबल किया जाता है। देख danwalsh.livejournal.com/9275.html जिसका शीर्षक है "मैं अपने अपाचे डिमन को एक अलग बंदरगाह पर सुनना चाहता हूं लेकिन SELinux इसे रोक रहा है, मैं क्या करूँ?" - rev


काम करने के लिए आपको एक पोर्ट 8080 को कॉन्फ़िगर करने की आवश्यकता हो सकती है। के लिए प्रलेखन के माध्यम से पढ़ें अपाचे वर्चुअल होस्ट्स। प्रत्येक 'साइट' को विशिष्ट बंदरगाहों (और आईपी, आदि) पर कनेक्शन स्वीकार करने के लिए स्थापित किया जा सकता है। क्या आपके पास http.conf में वर्चुअल होस्ट है जो केवल पोर्ट 80 के लिए कॉन्फ़िगर किया गया है?

साथ ही, आप पुष्टि कर सकते हैं कि सर्वर 8080 का उपयोग कर सुन रहा है netstat -nlpऔर उस बंदरगाह पर एक प्रविष्टि की तलाश में।


0
2018-06-18 14:38



नहीं, यह सही नहीं है। यदि आप बंदरगाह पर सुनने के लिए अपाचे चाहते हैं, तो आपको सुनो निर्देश का उपयोग करने की आवश्यकता है। - David Pashley
चेक httpd.apache.org/docs/2.2/en/vhosts/examples.html#port - radius
खैर, यह कुछ हद तक सही हो सकता है - कई लोग <वर्चुअलहोस्ट *: 80> जैसे vhosts बनाते हैं, और उस स्थिति में आपको इसे <VirtualHost *: *> में बदलना होगा या पोर्ट 8080 के लिए एक और vhost बनाना होगा। (बेशक, सुनो निर्देश भी आवश्यक है) - David Z
@ डेविड पश्ले, लेखक ने कहा कि सुनो निर्देश पहले ही जोड़ा जा चुका है। - Dana the Sane


लिनक्स रन मानते हैं netstat -lntp रूट के रूप में आप देख सकते हैं कि 8080 पर अपाचे सुन रहा है या नहीं। यह आपको यह पहचानने में मदद करेगा कि क्या समस्या अपाचे नहीं सुन रही है या यदि बाहरी समय (जैसे फ़ायरवॉल, सेलिनक्स इत्यादि) कनेक्शन कनेक्शन को अपाचे करने के लिए कारक हैं।


0
2018-06-18 16:24