gpt4 book ai didi

django - 如何使用 Apache 和 Daphne 部署 django channel ?

转载 作者:行者123 更新时间:2023-12-04 17:26:07 26 4
gpt4 key购买 nike

我正在尝试部署这个使用 channel 的 django 应用程序。我将 Apache 用于常规 HTTP 请求,并希望将 Web 套接字请求转发给 Daphne。
以下是我的一些重要文件:
apache 配置:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8001%{REQUEST_URI} [P,QSA,L]

Alias /static /home/anna/tchan/static
<Directory /home/anna/tchan/static>
Require all granted
</Directory>

Alias /media /home/anna/tchan/media
<Directory /home/anna/tchan/media>
Require all granted
</Directory>

<Directory /home/anna/tchan/tchan>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

WSGIScriptAlias / /home/anna/tchan/tchan/wsgi.py
WSGIDaemonProcess django_app python-path=/home/anna/tchan python-home=/home/anna/tchan/venv
WSGIProcessGroup django_app

</VirtualHost>
的最后几行设置.py :
ASGI_APPLICATION = 'tchan.routing.application'

CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": [('127.0.0.1', 8001)],
},
},
}
asgi.py
import os
import django
from channels.routing import get_default_application

from django.core.asgi import get_asgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tchan.settings')
django.setup()
application = get_default_application()
有了这些,我运行 daphne -p 8001 tchan.asgi:application然后 sudo service apache2 reload .
最后,在我的页面中测试 websocket 时会发生以下情况:

websocket.js:4 WebSocket connection to 'ws://192.168.0.57/ws/chat/8/' failed: Error during WebSocket handshake: Unexpected response code: 403


无论我是否运行 daphne,都会发生此错误 403。
我在这里做错了什么?
注意:当将 Django 的开发服务器和 docker 用于 channel 层时,该应用程序按预期工作,我认为问题出在我的 Apache 配置上。

最佳答案

我想到了。要启用 apache 重定向,我们需要:

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
其中之一未启用,导致 403 Forbidden。

关于django - 如何使用 Apache 和 Daphne 部署 django channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63320463/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com