2013-07-25 11 views
56

मैं अपना nginx सर्वर शुरू करने की कोशिश कर रहा हूं। जब मैं "$> /etc/init.d/nginx प्रारंभ" टाइप करता हूं, तो मेरे पास "nginx प्रारंभ करना" दिखाई देने वाला एक संदेश है, और तब कुछ भी नहीं होता है। कोई त्रुटि संदेश नहीं है, और जब मैं nginx की स्थिति की जांच करता हूं तो मुझे लगता है कि यह नहीं चल रहा है।Nginx कोई त्रुटि संदेश नहीं चल रहा

यहाँ मेरी /etc/nginx/nginx.conf फ़ाइल है:

server { 
    listen  80; 
    server_name technical-test.neo9.lan; 

    access_log /var/log/nginx/technical-test.neo9.lan.log main; 

    set $home /home/vincent; 

    location/{ 
    alias $home/neo9/web/app/; 
    index index.html; 
    } 

    location /api/ { 
    rewrite ^/api/(.*)$ /$1 break; 
    proxy_pass http://localhost:1234; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    } 
} 
:

worker_processes 4; 
daemon off; 

error_log /home/vincent/tmp/nginx.log; 

pid  /home/vincent/tmp/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 
default_type application/octet-stream; 

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
        '$status $body_bytes_sent "$http_referer" ' 
        '"$http_user_agent" "$http_x_forwarded_for"'; 

access_log /home/vincent/tmp/access.log main; 

sendfile  on; 

keepalive_timeout 65; 

include /etc/nginx/site-enabled/*; 

}

और यहाँ मेरी/etc/nginx/साइटों से उपलब्ध/डिफ़ॉल्ट फ़ाइल है

+3

काम करेंगे आप सेवा nginx configtest' कोशिश की '? –

+0

इस कमांड का उपयोग करके मुझे यह जवाब दें: "परीक्षण nginx विन्यास: nginx।" – user2618928

+3

और "sudo nginx -t" मुझे देता है: nginx: कॉन्फ़िगरेशन फ़ाइल /etc/nginx/nginx.conf वाक्यविन्यास ठीक है nginx: कॉन्फ़िगरेशन फ़ाइल /etc/nginx/nginx.conf परीक्षण सफल है – user2618928

उत्तर

2

nginx.conf फ़ाइल में डेमॉन विकल्प की जांच करें। यह चालू होना चाहिए। या आप कॉन्फ़िगरेशन फ़ाइल से इस लाइन को आसानी से निकाल सकते हैं। यह विकल्प पूरी तरह से यहां वर्णित है http://nginx.org/en/docs/ngx_core_module.html#daemon

+0

यह था। धन्यवाद! – Alex

177

सबसे पहले, हमेशा sudo nginx -t अपनी कॉन्फ़िगरेशन फ़ाइलों को सत्यापित करने के लिए अच्छा है।

मैं एक ही समस्या में भाग गया। मेरे पास इस मुद्दे का कारण दो गुना था। सबसे पहले, मैंने गलती से एक लॉग फ़ाइल को मेरी साइट-सक्षम फ़ोल्डर में कॉपी किया था। मैंने लॉग फ़ाइल को हटा दिया और सुनिश्चित किया कि साइट-सक्षम में सभी फ़ाइलें उचित nginx साइट कॉन्फ़िगरेशन थीं। मैंने यह भी देखा कि मेरे दो वर्चुअल होस्ट एक ही डोमेन के लिए सुन रहे थे। तो मैंने यह सुनिश्चित किया कि मेरे प्रत्येक वर्चुअल होस्ट के पास अद्वितीय डोमेन नाम हों।

sudo service nginx restart

तो यह काम किया।

+54

'sudo nginx -t' एक भयानक टिप है :) –

+1

जैसा कि आप (@ बादामदाद) ने कहा था कि मुझे 'sudo nginx -t' चलाकर निम्नलिखित मिल गया है। लेकिन फिर भी जब मैं इसे पुनरारंभ करने की कोशिश करता हूं तो विफल हो जाता है। 'ferdinand @ ferdinand-desktop: ~ $ sudo nginx -t nginx: कॉन्फ़िगरेशन फ़ाइल /etc/nginx/nginx.conf वाक्यविन्यास ठीक है nginx: कॉन्फ़िगरेशन फ़ाइल /etc/nginx/nginx.conf परीक्षण सफल है ferdinand @ ferdinand -desktop: ~ $ sudo service nginx पुनरारंभ * nginx nginx को पुनरारंभ करना [असफल] ' –

+0

सुनिश्चित करें कि आपकी साइट-सक्षम में केवल nginx conf फ़ाइलें हैं। यह भी सुनिश्चित करें कि nginx शुरू करते समय कोई बंदरगाह संघर्ष नहीं है। – badmadrad

3

अपने /etc/nginx/nginx.conf फ़ाइल में आप हैं:

include /etc/nginx/site-enabled/*; 

और शायद पथ का उपयोग कर रहे है:

/etc/nginx/sites-enabled/default 

सूचना लापता रों साइट में

0

मुझे अपने उदाहरण के साथ एक ही समस्या थी। मेरी समस्या यह थी कि मैं सर्वर पर पोर्ट 80 पहुंच की अनुमति देना भूल गया था। शायद यह भी तुम्हारी समस्या है? अपने WHM के साथ

चेक और यह सुनिश्चित करें कि बंदरगाह अपनी साइट के आईपी पते के लिए खुला है,

-1

क्या इसके लायक है के लिए: मैं सिर्फ एक ही समस्या थी, संपादन nginx.conf फ़ाइल के बाद। मैंने sudo nginx restart और कई अन्य आदेशों को कमांड करके इसे पुनरारंभ करने का प्रयास किया। उनमें से कोई भी उत्पादन आउटपुट नहीं किया। कॉन्फ़िगरेशन फ़ाइल की जांच करने के लिए sudo nginx -t कमांडिंग आउटपुट sudo: nginx: command not found, जो परेशान था। मुझे लगता है कि पथ के साथ समस्याएं थीं।

अंत में, मैं रूट (sudo su) के रूप में लॉग इन किया और sudo nginx restart आदेश दिया। अब, कमांड ने कॉन्फ़िगरेशन फ़ाइल से संबंधित एक त्रुटि संदेश प्रदर्शित किया है। इसे ठीक करने के बाद, यह सफलतापूर्वक पुनरारंभ हुआ।

7

आपको शायद /var/log/nginx/error.log में त्रुटियों की जांच करनी चाहिए।

मेरे मामले में मैंने ipv6 के लिए पोर्ट नहीं जोड़ा।ऊपर उल्लिखित कमांड चलाकर अपना विन्यास फाइल के लिए listen [::]:8000 default_server ipv6only=on;

0

1. चेक: तुम भी (एक पोर्ट 80 के अलावा अन्य पर मामले में आप चल रहे हैं nginx) करना चाहिए sudo nginx -t

2. पोर्ट विवादों की जांच करें। उदाहरण के लिए, यदि apache2 (ps waux | grep apache2) या कोई अन्य सेवा nginx (पोर्ट 80 कहें) के लिए कॉन्फ़िगर किए गए एक ही पोर्ट का उपयोग कर रही है, तो सेवा शुरू नहीं होगी और चुपचाप विफल हो जाएगी (गलती ... मेरे मित्र के चचेरे भाई को यह समस्या थी। ..)

0

एक मामला आप डिफ़ॉल्ट रूप से सिस्टम में 80 नंबर पोर्ट पर nginx धारण करते हैं, तो जांचें कि क्या आपके पास कोई सर्वर है जैसे अपाचे या सिस्टम पर मौजूद कुछ भी है जो समस्या के 80 नंबर पोर्ट को अवरुद्ध करता है।

1 है.आप इस तरह से nginx पर परिवर्तन पोर्ट संख्या,

sudo vim/etc/nginx/साइटों से उपलब्ध/डिफ़ॉल्ट

बदलें 80 81 या कुछ भी करने के लिए,

  1. चेक सब कुछ से ठीक है,

sudo nginx आयकर

  1. पुनरारंभ सर्वर

sudo सेवा nginx शुरू

  1. Nginx की स्थिति की जांच करें:

sudo सेवा nginx स्थिति

आशा है कि

संबंधित मुद्दे