Я пытаюсь настроить сокет gunicorn для приложения django и сервера nginx, используя его в качестве службы systemd. Однако после запуска службы guncicorn.socket сервер nginx возвращает неверный шлюз 502.
После перезапуска gunicorn.service и проверки его статуса он жив, но файл сокета находится в / run / gunicorn diercotory buy после использования
curl --unix-socket / run / gunicorn / socket http --trace-ascii dump.txt
возвращает
== Info: Rebuilt URL to: http/
== Info: Trying /run/gunicorn/socket...
== Info: Connected to http (/run/gunicorn/socket) port 80 (#0)
=> Send header, 68 bytes (0x44)
0000: GET / HTTP/1.1
0010: Host: http
001c: User-Agent: curl/7.47.0
0035: Accept: */*
0042:
== Info: Recv failure: Połączenie zerwane przez drugą stronę
== Info: Closing connection 0
curl: (56) Recv failure: Połączenie zerwane przez drugą stronę
после того, как этот файл сокета исчезнет, а следующее сообщение будет
hesmeron@hesmeron-All-Series:/etc/systemd/system$ curl --unix- socket /run/gunicorn/socket http --trace-ascii dump.txt
== Info: Rebuilt URL to: http/
== Info: Trying /run/gunicorn/socket...
== Info: Immediate connect fail for /run/gunicorn/socket: Nie ma takiego pliku ani katalogu
== Info: Closing connection 0
curl: (7) Couldn't connect to server
А вот и обратная связь от gunicorn.service
● gunicorn.socket - gunicorn socket
Loaded: loaded (/etc/systemd/system/gunicorn.socket; enabled; vendor preset: enabled)
Active: failed (Result: service-start-limit-hit) since nie 2019-04-28 15:30:19 CEST; 1h 58min ago
Listen: /run/gunicorn/socket (Stream)
kwi 28 15:30:15 hesmeron-All-Series systemd[1]: Closed gunicorn socket.
kwi 28 15:30:15 hesmeron-All-Series systemd[1]: Listening on gunicorn socket.
kwi 28 15:30:19 hesmeron-All-Series systemd[1]: gunicorn.socket: Unit entered failed state.
Я читал другие подобные вопросы, и простое добавление SECRET_KEY или EnvironmentFile не сработало.
gunicorn.service
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
Environment="SECRET_KEY='example'"
PIDFile=/run/gunicorn/pid
User=someuser
Group=someuser
RuntimeDirectory=gunicorn
WorkingDirectory=/home/hesmeron/media_site
ExecStart=/usr/bin/gunicorn --pid /run/gunicorn/pid \
--bind unix:/run/gunicorn/socket spartakus.wsgi
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true
EnvironmentFile=/home/hesmeron/envs/spartakus
[Install]
WantedBy=multi-user.target
gunicorn.socket
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn/socket
[Install]
WantedBy=sockets.target
gunicorn.conf
d /run/gunicorn 0755 someuser somegroup -
Я был бы очень рад любой помощи