2013-07-25 19 views
56

Sto cercando di iniziare il mio server nginx. Quando digito "$> /etc/init.d/nginx start", ho un messaggio che appare "Avvio di nginx:", e poi non succede nulla. Non c'è nessun messaggio di errore, e quando controllo lo stato di nginx vedo che non è in esecuzione.Nginx non è in esecuzione senza alcun messaggio di errore

Ecco il mio file /etc/nginx/nginx.conf:

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/*; 

}

Ed ecco il mio file/etc/nginx/sites-available/default:

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; 
    } 
} 
+3

Hai provato 'servizio nginx configtest'? –

+0

Usando questo comando dammi questa risposta: "Test della configurazione di nginx: nginx." – user2618928

+3

E "sudo nginx -t" mi dà: nginx: il file di configurazione /etc/nginx/nginx.conf la sintassi è ok nginx: il file di configurazione /etc/nginx/nginx.conf ha esito positivo – user2618928

risposta

177

In primo luogo, sempre sudo nginx -t verificare che i file di configurazione siano validi.

Ho incontrato lo stesso problema. Il motivo per cui ho avuto il problema era duplice. In primo luogo, avevo accidentalmente copiato un file di registro nella mia cartella abilitata al sito. Ho cancellato il file di registro e mi sono assicurato che tutti i file abilitati per i siti fossero configurati correttamente nel sito di nginx. Ho anche notato che due dei miei host virtuali stavano ascoltando lo stesso dominio. Così mi sono assicurato che ognuno dei miei host virtuali avesse nomi di dominio univoci.

sudo service nginx restart

Poi ha funzionato.

+54

'sudo nginx -t' è un suggerimento fantastico :) –

+1

Come tu (@badmadrad) hai detto che ho ottenuto quanto segue eseguendo' sudo nginx -t'. ma ancora quando provo a riavviarlo falliscono. 'ferdinand @ ferdinand-desktop: ~ $ sudo nginx -t nginx: la sintassi del file di configurazione /etc/nginx/nginx.conf è ok nginx: il file di configurazione /etc/nginx/nginx.conf ha esito positivo ferdinand @ ferdinand -desktop: ~ $ sudo service nginx restart * Riavviare nginx nginx [fail] ' –

+0

assicurati che il tuo sito abilitato abbia solo conf file nginx lì. Assicurati inoltre che non vi siano conflitti di porta all'avvio di nginx. – badmadrad

3

Nel file /etc/nginx/nginx.conf si hanno:

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

E probabilmente il percorso che si sta utilizzando è:

/etc/nginx/sites-enabled/default 

Avviso dispersi s nel sito.

0

ho avuto lo stesso problema con il mio esempio. Il mio problema era che ho dimenticato di consentire l'accesso alla porta 80 al server. Forse anche questo è il tuo problema?

Verificare con il GSA e assicurarsi che la porta è aperta per l'indirizzo IP del vostro sito,

-1

Per quel che vale: Ho appena avuto lo stesso problema, dopo la modifica del file nginx.conf. Ho provato e provato a riavviarlo comandando sudo nginx restart e vari altri comandi. Nessuno di loro ha prodotto alcun risultato. Comandando sudo nginx -t per controllare il file di configurazione ha dato l'uscita sudo: nginx: command not found, che è stato sconcertante. Stavo iniziando a pensare che c'erano problemi con il percorso.

Infine, I eseguito il login come root (sudo su) e comandato sudo nginx restart. Ora, il comando ha visualizzato un messaggio di errore relativo al file di configurazione. Dopo averlo corretto, è stato riavviato correttamente.

7

Probabilmente si dovrebbe verificare la presenza di errori in /var/log/nginx/error.log.

Nel mio caso non ho aggiunto la porta per ipv6.Si dovrebbe anche fare questo (nginx nel caso in cui si esegue su una porta diversa dalla 80): listen [::]:8000 default_server ipv6only=on;

0

1. Controllare i file di configurazione eseguendo il comando di cui sopra: sudo nginx -t.

2. Verificare la presenza di conflitti di porta. Per esempio, se apache2 (ps waux | grep apache2) o qualsiasi altro servizio utilizza le stesse porte configurate per nginx (dire porta 80) il servizio non si avvierà e fallirà silenziosamente (err ... il cugino del mio amico ha avuto questo problema. ..)

0

Un caso si controlla che nginx trattiene 80 porte numeriche nel sistema per impostazione predefinita, controlla se si ha un server come Apache o qualcosa sul sistema che blocca 80 porta numeri che si è verificato il problema.

1 numero di porta cambiamento .È su nginx in questo modo,

sudo vim/etc/nginx/sites-available/default

Change 80-81 o nulla,

  1. Controllare tutto è ok da,

sudo nginx -t

  1. Start Server riavviare il servizio

sudo nginx

  1. Controllare lo stato di nginx:

sudo stato del servizio nginx

speranza che lavorerà

Problemi correlati