2017-06-26 2 views
1

Jusqu'à présent, j'ai utilisé Gunicorn, avec ce fichier de configuration systemd:Comment lier Daphne sur une socket unix?

[Unit] 
Description=gunicorn daemon 
After=network.target 


[Service] 
EnvironmentFile=/var/www/user/.envvars 
User=user 
Group=www-data 
WorkingDirectory=/var/www/user 
ExecStart=/var/www/venv/bin/gunicorn --workers 3 --bind unix:/var/www/user/user.sock config.wsgi:application --env DJANGO_SETTINGS_MODULE='config.settings.production' 

[Install] 
WantedBy=multi-user.target 

Et Nginx requêtes proxy pour cette prise unix.

Essayer Daphne, je réalisais que je ne peux pas préciser --env DJANGO_SETTINGS_MODULE='config.settings.production'

Mais je précise cette variable dans asgi.py, sur tout est normal.

Dès que j'ai exécuté le gunicorn service, le socket lui-même a été créé instantanément sur les demandes de nginx.

Lorsque je tente de faire la même astuce avec Daphné, je reçois une erreur:

Jun 26 11:48:32 p435061.kvmvps daphne[8447]: ValueError: invalid literal for int() with base 8: '/var/www/user/user.sock'

Mais je ne peux pas comprendre comment utiliser le unix.sock lorsque je tente de lancer Daphne et créer mon systemd fichier

MISE À JOUR

J'ai changé le fichier de paramètres, et il donne quelque chose d'étrange, mais il Wo RKS:

[Unit] 
Description=daphne daemon 
After=network.target 


[Service] 
EnvironmentFile=/var/www/gglobal/.envvars 
User=gglobal 
Group=www-data 
WorkingDirectory=/var/www/gglobal 
ExecStart=/var/www/venv/bin/daphne -b unix:/var/www/gglobal/gglobal.sock config.asgi:channel_layer -v2 

[Install] 
WantedBy=multi-user.target 

état systemctl retourne DAPHNE:

Jun 26 17:53:46 p435061.kvmvps daphne[14183]: 2017-06-26 17:53:46,722 DEBUG get 'RDS_HOSTNAME' casted as 'None' with default '<NoValue>' 
Jun 26 17:53:46 p435061.kvmvps daphne[14183]: 2017-06-26 17:53:46,722 DEBUG get 'RDS_PORT' casted as 'None' with default '<NoValue>' 
Jun 26 17:53:46 p435061.kvmvps daphne[14183]: 2017-06-26 17:53:46,722 DEBUG get 'REDIS_ENDPOINT_ADDRESS' casted as 'None' with default '<NoValue>' 
Jun 26 17:53:46 p435061.kvmvps daphne[14183]: 2017-06-26 17:53:46,722 DEBUG get 'REDIS_PORT' casted as 'None' with default '<NoValue>' 
Jun 26 17:53:46 p435061.kvmvps daphne[14183]: 2017-06-26 17:53:46,723 DEBUG get 'DJANGO_SENTRY_DSN' casted as 'None' with default 'https://56bb387ee6ef4e7b 
Jun 26 17:53:46 p435061.kvmvps daphne[14183]: 2017-06-26 17:53:46,723 DEBUG get 'DJANGO_SENTRY_CLIENT' casted as 'None' with default 'raven.contrib.django. 
Jun 26 17:53:46 p435061.kvmvps daphne[14183]: 2017-06-26 17:53:46,723 DEBUG get 'DJANGO_SENTRY_LOG_LEVEL' casted as '<class 'int'>' with default '20' 
Jun 26 17:53:46 p435061.kvmvps daphne[14183]: 2017-06-26 17:53:46,724 DEBUG get 'DJANGO_SENTRY_LOG_LEVEL' casted as '<class 'int'>' with default '20' 
Jun 26 17:53:46 p435061.kvmvps daphne[14183]: 2017-06-26 17:53:46,724 DEBUG get 'DJANGO_ADMIN_URL' casted as 'None' with default '<NoValue>' 
Jun 26 17:53:48 p435061.kvmvps daphne[14183]: DEBUG 2017-06-26 17:53:48,186 base 14183 140286354425600 Configuring Raven for host: <raven.conf.remote.RemoteCo 

Mais nginx ne jure que par l'absence d'un fichier * .sock:

2017/06/26 17:47:51 [crit] 12682#12682: *59 connect() to unix:/var/www/project/project.sock failed (2: No such file or directory) while connecting to upstream, client: 5.152.1.201, server: mydomain.com, request: "GET/HTTP/2.0", upstream: "http://unix:/var/www/project/project.sock:/", host: "mydomain.com" 

J'ai passé toute la journée la lutte, mais rien ne s'est passé.

+0

Looks Comme si vous utilisiez de mauvais arguments pour Daphné. Quelque chose comme au lieu de '-u ' quelque chose comme '-b '? –

+0

@ZadaZorg Doit-on indiquer ensemble -b et -u? –

Répondre

0

La réponse est assez simple:

Le problème était que je l'ai souligné -b unix:, et le préfixe unix: interféré avec le travail, et, bien sûr, le drapeau doit être mis -u

[Unit] 
Description=daphne daemon 
After=network.target 


[Service] 
EnvironmentFile=/var/www/gglobal/.envvars 
User=gglobal 
Group=www-data 
WorkingDirectory=/var/www/gglobal 
ExecStart=/var/www/venv/bin/daphne -u /var/www/gglobal/gglobal.sock config.asgi:channel_layer -v2 

[Install] 
WantedBy=multi-user.target