Nar*_*nik 6 unix django nginx django-channels daphne
到目前为止,我已经使用Gunicorn和这个配置文件 systemd:
[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
Run Code Online (Sandbox Code Playgroud)
和Nginx代理请求这个 unix 套接字。
尝试达芙妮,我意识到我无法指定--env DJANGO_SETTINGS_MODULE='config.settings.production'
但是我在 中指定了这个变量asgi.py,在这一切都是正常的。
一旦我运行了gunicorn service,套接字本身就会立即创建,来自nginx.
当我尝试对 Daphne 执行相同的操作时,出现错误:
6 月 26 日 11:48:32 p435061.kvmvps daphne[8447]:ValueError:int() 的文字无效,基数为 8:'/var/www/user/user.sock'
但是unix.sock当我尝试运行Daphne和创建我的systemd文件时,我不知道如何使用
更新
我更改了设置文件,它给出了一些奇怪的东西,但它有效:
[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
Run Code Online (Sandbox Code Playgroud)
systemctl status 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
Run Code Online (Sandbox Code Playgroud)
但是 nginx 发誓缺少 *.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"
Run Code Online (Sandbox Code Playgroud)
我花了一整天的时间来抗争,但什么也没发生。
答案很简单:
问题是我指出了-b unix:,unix:前缀干扰了工作,当然,标志应该设置-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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3018 次 |
| 最近记录: |