सरल Nginx विन्यास काम नहीं करता है


4

मैं बिल्कुल नहीं सर्वर अनुभव वाला एक डेवलपर हूं, जिस प्रोजेक्ट पर मैं काम कर रहा हूं वह सर्वरों की दुनिया में मेरा पहला कदम है। मूल रूप से मुझे एक एपीआई को ऑनलाइन होस्ट करना होगा, उबंटू पर नग्नेक्स चलाने वाले एक लाइनोड सर्वर पर। और मुझे HTML सूचकांक पृष्ठ को होस्ट करने के लिए एक साधारण सर्वर ब्लॉक प्राप्त करने में समस्या हो रही है, जिसमें सिर्फ एक एच 1 टैग है जिसे 'हैलो' कहा गया है। मैंने एक सरल सर्वर ब्लॉक काम करने पर विभिन्न ट्यूटोरियल का अनुसरण किया है और पढ़ा है, मैंने इन ब्लॉक को अपने स्थानीय मशीन पर भी काम किया है, लेकिन मुझे दूरस्थ सर्वर पर काम करने में समस्या आ रही है।

मैं आपको कुछ ऐसे ब्लॉक दिखाऊंगा जो मेरे लिए लिनोड पर काम करने में विफल रहे हैं:

सबसे पहले, एक साधारण HTML सर्वर को ब्लॉक करने के लिए एक सरल ब्लॉक, यह मेरी स्थानीय मशीन पर काम करता है:

server {

    listen 8005;
    index index.html;
    root /srv/www/site;

}

एक और सरल ब्लॉक:

server {

    listen [server ip]:8006;
    server_name "";
    index index.html;
    root /srv/www/site;

    location ~/ {

        root /srv/www/site;

    }

}

Php परोसने के लिए एक ब्लॉक (स्थानीय रूप से काम करता है):

server {

    listen [server ip]:8007;
    server_name "";
    index index.php index.html index.htm;
    root /srv/www/site;

    location / {

        try_files $uri $uri/ /index.php?q=$uri&$args;

    }

    location ~* \.php$ {

        try_files $uri /index.php;
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;

    }

}

जब भी मैंने उन्हें ब्राउज़र के माध्यम से एक्सेस करने की कोशिश की मुझे सर्वर कनेक्शन टाइमआउट मिला। मेरे पास इसके साथ कोई DNS सेटअप नहीं है इसलिए मैं सर्वर IP और पोर्ट नंबर का उपयोग करके इसे एक्सेस करने का प्रयास कर रहा था:

[server ip]:[port]

या

[server ip]:[port]/index.html

लेकिन कुछ नहीं मिला।

तो एक चीज जो समस्या का कारण हो सकती है वह यह है कि एक और एप्लिकेशन को पहले से ही सर्वर पर होस्ट किया जा रहा है। इसका अपना ब्लॉक है और यह अपने बंदरगाह पर चल रहा है। इसका अपना डीएनएस नाम है जो इसकी ओर इशारा करता है। लेकिन इसमें से कोई भी बात सही होनी चाहिए? जैसा कि प्रत्येक सर्वर ब्लॉक मूल रूप से एक वर्चुअल सर्वर है या वर्चुअल डोमेन बनाता है। आईपी ​​और पोर्ट के माध्यम से इसे एक्सेस करना ठीक काम करना चाहिए, लेकिन यह काम नहीं कर रहा है!

उन सभी के बारे में जो मैं सोच सकता हूं, इस क्षेत्र में मेरा ज्ञान अधिकतम है और मुझे स्मार्ट लोगों से मदद की आवश्यकता है!


2
का आउटपुट क्या है iptables -nvL?
जेवियर लुकास

फ़ायरवॉल सबसे अधिक संभावना है।

अब तक मुझे कुछ बातें पता चली हैं, मैंने बंदरगाहों को फ़ायरवॉल के माध्यम से अनुमति दी है, और जाँच की है कि Nginx उन बंदरगाहों पर सुन रहा है। हालांकि अभी भी कुछ नहीं। इसके अलावा, सर्वर पर पहले से चल रहा लाइव एप्लिकेशन पोर्ट 80 पर सुन रहा है, जब पोर्ट 80 पर सुनने के लिए मेरे सरल सर्वर ब्लॉक को बदल रहा है, तो यह काम करता है। तो कम से कम मेरा ब्लॉक सिंटेक्स सही है। जब मुझे 'lsof -i: 80' मिलता है , तो मुझे क्या मिलता है: i.imgur.com/f6WbR7y.png , करता है *: http का अर्थ है कि सभी http ट्रैफ़िक को पोर्ट 80 पर निर्देशित किया जाता है?

@ जोनाथन आपको नई जानकारी के साथ अपने प्रश्न को संपादित करना चाहिए । इसके परिणामों के लिए lsofइसका मतलब है कि पोर्ट 80 पर सुनने वाला सॉफ्टवेयर मशीन पर उपलब्ध किसी भी इंटरफेस पर सुन रहा है। यदि आपको ऐसा कुछ मिला है, 127.0.0.1:80तो इसका मतलब होगा कि सॉफ्टवेयर केवल उन कनेक्शनों को स्वीकार करने जा रहा है जो पोर्ट 80 पर लूपबैक डिवाइस पर बने हैं। इसलिए ईथरनेट कार्ड से आने वाला कनेक्शन अस्वीकार कर दिया जाएगा।
लुई

जवाबों:


0

127.0.0.1:8005 का उपयोग करके एक ही सर्वर से एक्सेस करने की कोशिश करें - यदि यह काम करता है तो यह आपकी आईपी टेबल है। उस मामले में कुछ इस तरह से चलाने की कोशिश करें: iptables -A INPUT -i eth0 -p tcp --dport 8005 -j ACCEPTपोर्ट को खोलने के लिए।

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