Ich war schon stundenlang dabei und trotzdem kann ich nicht herausfinden, warum mein Setup nicht funktioniert. Wenn ich den Befehl selbst ausführe, kann ich über meinen Browser auf die Seite zugreifen. Aber wenn ich versuche, es als Dienst auszuführen, bekomme ich ein 502: Schlechtes Gateway.Nginx + Systemd/Systemctl + Django funktioniert nicht (502 schlechtes Gateway)
Ich versuchte zuerst mit Unix Sockets, aber als das nicht funktionierte, steckte ich nur die IP und den Port direkt, immer noch kein Glück.
gunicorn.service:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=username
WorkingDirectory=/home/username/naomiselect
Environment="PATH=/home/username/naomiselect/naomienv/bin"
ExecStart=/home/username/naomiselect/naomienv/bin/gunicorn --workers 3 --bind local_ip:8000 naomiselect.wsgi:application
[Install]
WantedBy=multi-user.target
nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
sites-available/naomiselect:
server {
listen 80;
server_name local_ip;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username/naomiselect;
}
location/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://local_ip:8000/;
}
}
Die Verzeichnisgruppe und Eigentümer sind www-data und Benutzername rekursiv, mit Berechtigungen drwxrwxr-x.
Ich habe keine Ahnung, was ich falsch mache, wenn ich mehrere Tutorials referenzierte und verschiedene Methoden ausprobierte und keine von ihnen funktioniert.
A 502 Antwort bedeutet, dass der Upstream-Server nicht in der Lage ist, verbunden zu werden. Bist du sicher, dass Gunicorn läuft? – jedifans
Ich glaube nicht, dass es überhaupt läuft, nein. Status sagt "exited" anstatt "running" für den Dienst. Nicht sicher, warum es gerade beendet wird. – tayoung
Alles in 'journalctl -xe', warum es beendet wird? – jedifans