wsgi nginx error: permission denied beim herstellen einer Verbindung zum upstream

Scheint es viele Fragen auf StackOverflow, aber leider nichts für mich gearbeitet hat.

Ich bin immer ein 502 bad gateway nginx, und die folgenden Protokolle: connect() to ...myproject.sock failed (13: Permission denied) while connecting to upstream

Ich bin mit wsgi und nginx auf ubuntu, und ich habe nach dieser guide von Digital Ocean. Ich anscheinend konfiguriert wsgi richtig seit uwsgi -s myproject.sock --http 0.0.0.0:8000 --module app --callable app gearbeitet, aber ich bekomme immer wieder die nginx permission denied Fehler und ich habe keine Ahnung, warum:

Nach kommen über diese Frage und dieser andere, ich habe die .ini - Datei und fügte die chown-socket, chmod-socket, uid und gid Parameter (habe auch versucht nur die Einstellung der ersten beiden, entweder oder, und ein paar verschiedene Einstellungen für die Zugriffsrechte, --und sogar die meisten permissive hat nicht funktioniert).

Dieser schien vielversprechend, aber ich glaube nicht, dass selinux ist installiert auf meinem Ubuntu (läuft sudo apt-get remove selinux gibt "Paket" selinux "ist nicht installiert, wird also auch nicht entfernt" und find /-name "selinux" nicht alles zeigen). Nur für den Fall, obwohl, ich habe versucht, was dieser Beitrag empfohlen, da gut. Deinstallieren apparmor (sudo apt-get install apparmor) hat nicht funktioniert.

Jedes mal, wenn ich eine änderung vornehmen, ich Lauf sudo service nginx restart, aber ich sehe nur die 502 Gateway Fehler (und die Erlaubnis verweigert " - Fehler, wenn ich die logs).

Dies ist mein nginx Konfigurationsdatei:

server {
    listen 80;
    server_name 104.131.110.156;

    location /{
        include uwsgi_params;
        uwsgi_pass unix:/home/user/myproject/web_server/myproject.sock;
    }
}

.conf Datei:

description "uWSGI server instance configured to serve myproject"

start on runlevel [2345]
stop on runlevel [!2345]

setuid user
setgid www-data

env PATH=/root/.virtualenvs/my-env/bin
chdir /home/user/myproject/web_server
exec uwsgi --ini /home/user/myproject/web_server/myproject.ini

.ini Datei:

[uwsgi]
module = wsgi

master = true
processes = 5

socket = /home/user/myproject/web_server/myproject.sock
chown-socket=www-data:www-data
chmod-socket = 664
uid = www-data
gid = www-data

vacuum = true
die-on-term = true

(Wenn es hilft, das sind die specs von meinem Digital Ocean machine: Linux 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux)

Bitte lassen Sie mich wissen, wenn es etwas gibt, was ich tun kann, und ich danke Ihnen sehr viel.

Versuchen Sie die socket in /tmp. Sie könnten immer Zugriff verweigert wenn der nginx-user hat keine Berechtigungen zum auflisten eines der Verzeichnisse in den socket-Pfad. Es muss Berechtigungen für /home/user /home/user/myproject, etc
Vielen Dank für die Beantwortung! Leider, obwohl, gleicher Fehler: connect() to unix:/tmp/coaster.sock failed (13: Permission denied) while connecting to upstream
Ziemlich sicher, dass nginx läuft als www-data auf Ubuntu, aber durchaus einen Blick Wert... Was macht der /etc/nginx.conf sagen, dass nginx läuft? Auch, was passiert, wenn Sie php-fpm verwenden einen tcp-socket, wie die Adresse 127.0.0.1:9000?
Ja, ich denke, es läuft wie www-data. Ich dachte, dass es vielleicht ein problem mit den Berechtigungen, so wechselte ich den Besitzer der Verzeichnisse unter user/ zu den www-data Benutzer durch den Aufruf sudo chown www-data:www-data DIRNAME aber, auch nach dem Neustart der server und nginx, ich bekomme immer noch den gleichen Fehler. Ich bin auch nginx als root aus, da rufe ich sudo service nginx restart Weile auf meinem root-account. Und ich bin nicht mit PHP, aber Kolben + WSGI, also ich weiß nicht, ob das gilt...
Versuchen Sie, die TCP verwenden, statt unix-socket, der in Ihrem Fall ist es --socket 127.0.0.1:3031 argument und uwsgi_pass 127.0.0.1:3031; in der nginx-Konfiguration. Es funktioniert eh besser.

InformationsquelleAutor aralar | 2015-04-26

Schreibe einen Kommentar