Сервер возвращает 502 Bad Gateway после переключения на сокет gunicorn в качестве службы systemd - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь настроить сокет 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 -

Я был бы очень рад любой помощи

...