首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在unix套接字上绑定Daphne?

如何在unix套接字上绑定Daphne?
EN

Stack Overflow用户
提问于 2017-06-26 09:08:23
回答 1查看 4K关注 0票数 8

到目前为止,我已经在这个配置文件系统中使用了古尼坎

代码语言:javascript
复制
[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

以及对这个unix的Nginx代理请求。

尝试达芙妮,我意识到我不能指定--env DJANGO_SETTINGS_MODULE='config.settings.production'

但是我在asgi.py中指定了这个变量,这一切都是正常的。

当我运行gunicorn service时,套接字本身立即被创建,nginx的请求就是在这个套接字上创建的。

当我试图对Daphne做同样的操作时,我会得到一个错误:

6月26日11:48:32 p435061.kvmvps daphne8447: ValueError:无效文字for int(),基数为8:'/var/www/user/user.sock‘

但是,当我尝试运行unix.sock并创建Daphne文件时,我想不出如何使用systemd

更新

我更改了设置文件,它给出了一些奇怪的东西,但是它起作用了:

代码语言:javascript
复制
[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

systemctl状态daphne返回:

代码语言:javascript
复制
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

但是nginx对缺少一个*.sock文件表示肯定:

代码语言:javascript
复制
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"

我一整天都在为这事而战,但什么也没发生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-01 04:42:55

答案很简单:

问题是我指出了-b unix:unix:前缀干扰了工作,当然,标志应该设置为-u

代码语言:javascript
复制
[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
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44756294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档