Errore del socket del dominio unix nginx


18

Uso fedora 17, e quando installo nginx con uwsgi usando un socket di dominio unix, quando inserisco il socket in una directory con il permesso adeguato va bene, ma quando inserisco il socket in /tmpesso causerà l'errore nginx:

connect() to unix:/tmp/MySite.sock failed (2: No such file or directory) while connecting to upstream

Il file esiste e dispone dell'autorizzazione in lettura / scrittura per l'utente nginx. Ma cosa causa questo errore, mi fa davvero impazzire, qualcuno può capirlo.

Risposte:


33

Non è possibile inserire socket destinati alla comunicazione tra processi /tmp.

Per motivi di sicurezza, le versioni recenti di Fedora usano directory temporanee con spaziatura dei nomi , il che significa che ogni servizio vede un completamente diverso /tmpe può vedere solo i propri file in quella directory.

Per risolvere il problema, posizionare il socket in una directory diversa, ad esempio /run(precedentemente noto come /var/run).


1
/ run non è scrivibile per un utente normale però
hostmaster

1
/runnon è scrivibile direttamente, ma è possibile indicare a systemd di creare una directory sotto di essa scrivibile da entrambi i processi.
Michael Hampton

Per aiutare chi cerca, questo vale anche per centos 7 e lo spostamento della cartella socket su / run ha funzionato. Non è facile trovare questo problema, perché ogni account può vedere la cartella e il file in tmp (impostare 777 per il test), quindi non indovineresti mai che i processi non potrebbero.
JosephK,

0

SÌ! QUESTO AIUTATO!

Stavo vedendo i messaggi di check-startup-logs da uwsgi, ma non aveva dati nei log di avvio, non sono stato in grado di scoprire cosa stava succedendo. Alla fine, ho dovuto cambiare il file del calzino in una posizione non / tmp e aggiungere:

catch-exceptions = true

nel file ini del wsgi. Alla fine, avevo specificato la posizione del gestore file in una directory inesistente, quindi non ho potuto registrare gli errori in primo luogo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.