Назад | Перейти на главную страницу

Apache - (104) Сброс соединения одноранговым узлом: [клиент x.x.x.x: 4712] AH03308: ap_proxy_transfer_between_connections: ошибка сокета - ap_get_brigade

У меня есть приложение django, развернутое на эластичном beanstalk:

http://django-env.eba-bcvm9cxz.us-west-2.elasticbeanstalk.com/chart/

Я следую этому руководству: https://medium.com/@elspanishgeek/how-to-deploy-django-channels-2-x-on-aws-elastic-beanstalk-8621771d4ff0 и используя архитектуру номер 2.

Мои соответствующие файлы конфигурации следующие:

option_settings:  
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: dashboard.settings
    PYTHONPATH: /opt/python/current/app/dashboard:$PYTHONPATH
  aws:elasticbeanstalk:container:python:
    WSGIPath: dashboard/wsgi.py

  aws:elbv2:listener:80:
    ListenerEnabled: 'true'
    Protocol: HTTP
  aws:elbv2:listener:5000:
    ListenerEnabled: 'true'
    Protocol: HTTP

-

files:
  "/etc/httpd/conf.d/proxy.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
      ProxyPass /websockets/ ws://127.0.0.1:5000/websockets/ upgrade=NONE
      ProxyPassReverse /websockets/ ws://127.0.0.1:5000/websockets/

Мне нужно было добавить upgrade=NONE в proxy.conf, которого нет в учебнике, потому что я всегда получал 503 на клиенте, когда он устанавливал веб-сокет.

У меня есть сервер daphne, который прослушивает 5000, который успешно получает запрос веб-сокета от клиента, но клиент никогда не получает ответ от сервера. На хромированной консоли я получаю:

Соединение WebSocket с 'ws: //django-env.eba-bcvm9cxz.us-west-2.elasticbeanstalk.com/websockets/' не удалось: ошибка во время рукопожатия WebSocket: неожиданный код ответа: 408

Журналы Apache показывают следующее:

[Sat Jun 27 11:42:11.962267 2020] [watchdog:debug] [pid 9855] mod_watchdog.c(590): AH02981: Watchdog: Created child worker thread (_proxy_hcheck_).
[Sat Jun 27 11:42:11.962286 2020] [proxy:debug] [pid 9855] proxy_util.c(1940): AH00925: initializing worker ws://127.0.0.1:5000/websockets/ shared
[Sat Jun 27 11:42:11.962298 2020] [proxy:debug] [pid 9855] proxy_util.c(2000): AH00927: initializing worker ws://127.0.0.1:5000/websockets/ local
[Sat Jun 27 11:42:11.962319 2020] [proxy:debug] [pid 9855] proxy_util.c(2035): AH00930: initialized pool in child 9855 for (127.0.0.1) min=0 max=4 smax=4
[Sat Jun 27 11:42:11.962330 2020] [proxy:debug] [pid 9855] proxy_util.c(1940): AH00925: initializing worker proxy:reverse shared
[Sat Jun 27 11:42:11.962334 2020] [proxy:debug] [pid 9855] proxy_util.c(2000): AH00927: initializing worker proxy:reverse local
[Sat Jun 27 11:42:11.962341 2020] [proxy:debug] [pid 9855] proxy_util.c(2035): AH00930: initialized pool in child 9855 for (*) min=0 max=4 smax=4
[Sat Jun 27 11:42:11.962345 2020] [proxy:debug] [pid 9855] proxy_util.c(1935): AH00924: worker ws://127.0.0.1:5000/websockets/ shared already initialized
[Sat Jun 27 11:42:11.962347 2020] [proxy:debug] [pid 9855] proxy_util.c(1992): AH00926: worker ws://127.0.0.1:5000/websockets/ local already initialized
[Sat Jun 27 11:42:30.521413 2020] [proxy:debug] [pid 9625] proxy_util.c(4059): (104)Connection reset by peer: [client 172.31.42.96:4452] AH03308: ap_proxy_transfer_between_connections: error on sock - ap_get_brigade
[Sat Jun 27 11:42:30.521453 2020] [proxy:debug] [pid 9625] proxy_util.c(2353): AH00943: WS: has released connection for (127.0.0.1)

Что не так с моей конфигурацией?