
Ich versuche, nginx mit einem uwsgi-Socket unter FreeBSD zu verbinden. Ich habe den Socket auf 666 eingestellt, aber immer wenn ich eine Anfrage in meinem Browser stelle, kann ich Folgendes in meinen nginx-Protokollen sehen:
2017/12/12 11:34:04 [crit] 1051#100213: *5 connect() to unix:/home/dashboard/dashboard/dashboard.sock failed (13: Permission denied) while connecting to upstream, client: <IP address>, server: <IP address>, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/home/dashboard/dashboard/dashboard.sock:", host: "<IP address>"
Meine Nginx-Prozesse:
root 1050 0.0 1.5 25496 7280 - Is 11:11 0:00.00 nginx: master process /usr/local/sbin/nginx
www 1051 0.0 1.6 25496 7756 - I 11:11 0:00.01 nginx: worker process (nginx)
Ich glaube, das liegt daran, dass meine uwsgi-Prozesse (Emperor, Master und Worker) als Root ausgeführt werden, während nginx als ausgeführt wird www
.
Ich habe versucht, uwsgi's gid
und uid
to einzustellen www
, aber der uwsgi-Worker schlägt mit dem folgenden Fehler fehl:
*** Starting uWSGI 2.0.15 (64bit) on [Tue Dec 12 11:43:44 2017] ***
compiled with version: 4.2.1 Compatible FreeBSD Clang 4.0.0 (tags/RELEASE_400/final 297347) on 08 December 2017 10:41:56
os: FreeBSD-11.1-RELEASE-p4 FreeBSD 11.1-RELEASE-p4 #0: Tue Nov 14 06:12:40 UTC 2017 [email protected]:/usr/obj/usr/src/sys/GENERIC
nodename: newyork
machine: amd64
clock source: unix
pcre jit disabled
detected number of CPU cores: 1
current working directory: /usr/home/ruipacheco
detected binary path: /usr/local/bin/uwsgi-2.7
chdir() to /home/dashboard/dashboard
chdir(): Permission denied [core/uwsgi.c line 2591]
chdir(): Permission denied [core/uwsgi.c line 1613]
Tue Dec 12 11:43:44 2017 - [emperor] curse the uwsgi instance /home/ruipacheco/uwsgi.ini (pid: 967)
Tue Dec 12 11:43:44 2017 - [emperor] removed uwsgi instance /home/ruipacheco/uwsgi.ini
Wenn ich es andererseits als Root laufen lasse, kann nginx keine Verbindung zu einem Socket herstellen, der dem Root gehört.
Was ist das richtige Verfahren, um Nginx mit einem UWSGI-Socket unter FreeBSD kommunizieren zu lassen?