Apache's default mod_proxy does not support WebSockets. If you want to keep using Apache I would consider looking at mod_proxy_wstunnel.
Andrew On Thu, Dec 22, 2016 at 2:24 PM, Adam Teale <[email protected]> wrote: > Hi everyone, > > I have a django app running on mac os x server via mod_wsgi (apache 2.4). > > I am using proxypass to point to daphne (running on port 8000). > > As far as I can tell things should be running ok. Daphne is being run via > this command: > > daphne mysite.asgi:channel_layer -v2 -p 8000 > > When ever I access the url with the Channels chat demo app (/chat) daphne > prints the following: > > 2016-12-22 10:58:15,398 INFO Starting server at 127.0.0.1:8000, > channel layer mysite.asgi:channel_layer > > 2016-12-22 10:58:15,400 INFO Using busy-loop synchronous mode on > channel layer > > 2016-12-22 10:58:18,342 DEBUG HTTP GET request for > http.response!SAKtXWGjqdCG > > 2016-12-22 10:58:18,373 DEBUG HTTP 200 response started for > http.response!SAKtXWGjqdCG > > 2016-12-22 10:58:18,373 DEBUG HTTP close for http.response!SAKtXWGjqdCG > > 2016-12-22 10:58:18,374 DEBUG HTTP response complete for > http.response!SAKtXWGjqdCG > > 127.0.0.1:49944 - - [22/Dec/2016:10:58:18] "GET /chat/" 200 6550 > > 2016-12-22 10:58:18,440 DEBUG HTTP GET request for > http.response!mDjckxncNYGS > > 2016-12-22 10:58:18,476 DEBUG HTTP 200 response started for > http.response!mDjckxncNYGS > > 2016-12-22 10:58:18,477 DEBUG HTTP close for http.response!mDjckxncNYGS > > 2016-12-22 10:58:18,477 DEBUG HTTP response complete for > http.response!mDjckxncNYGS > > 127.0.0.1:49950 - - [22/Dec/2016:10:58:18] "GET /chat/stream/" 200 6550 > > 2016-12-22 10:58:19,527 DEBUG HTTP GET request for > http.response!lCwBwWsyjxGf > > 2016-12-22 10:58:19,550 DEBUG HTTP 200 response started for > http.response!lCwBwWsyjxGf > > 2016-12-22 10:58:19,551 DEBUG HTTP close for http.response!lCwBwWsyjxGf > > 2016-12-22 10:58:19,551 DEBUG HTTP response complete for > http.response!lCwBwWsyjxGf > > ... > > > > > The rqworker also: > > > mysite.local > > 2016-12-22 10:58:31,984 - DEBUG - worker - Got message on http.request > (reply http.response!MLkDhtLSmyEy) > > 2016-12-22 10:58:31,985 - DEBUG - runworker - http.request > > 2016-12-22 10:58:31,985 - DEBUG - worker - Dispatching message on > http.request to channels.staticfiles.StaticFilesConsumer > > > The error I am getting in safari & chrome is: > "WebSocket connection to 'wss://mysite.local/chat/stream/' failed: > WebSocket is closed before the connection is established. response code: > 200" > > > When I access the site on from the server via localhost:8000/chat > everything works fine and daphne prints out: > > 2016-12-22 11:03:10,393 DEBUG HTTP GET request for > http.response!MJBzHhZMRNnb > > 2016-12-22 11:03:10,406 DEBUG HTTP 200 response started for > http.response!MJBzHhZMRNnb > > 2016-12-22 11:03:10,407 DEBUG HTTP close for http.response!MJBzHhZMRNnb > > 2016-12-22 11:03:10,407 DEBUG HTTP response complete for > http.response!MJBzHhZMRNnb > > 127.0.0.1:50013 - - [22/Dec/2016:11:03:10] "GET /chat" 200 6550 > > 2016-12-22 11:03:10,411 DEBUG WebSocket closed for > websocket.send!wlxnNRjdYtZi > > 127.0.0.1:50026 - - [22/Dec/2016:11:03:10] "WSDISCONNECT /chat/stream/" - > - > > 2016-12-22 11:03:10,413 DEBUG HTTP GET request for > http.response!aGsxTkWhWXxh > > 2016-12-22 11:03:10,415 DEBUG HTTP GET request for > http.response!fOyocApjCNFZ > > 2016-12-22 11:03:10,416 DEBUG HTTP GET request for > http.response!EdzYIGSakoQB > > 2016-12-22 11:03:10,429 DEBUG HTTP 304 response started for > http.response!fOyocApjCNFZ > > 2016-12-22 11:03:10,430 DEBUG HTTP close for http.response!fOyocApjCNFZ > > 2016-12-22 11:03:10,430 DEBUG HTTP response complete for > http.response!fOyocApjCNFZ > > 127.0.0.1:50034 - - [22/Dec/2016:11:03:10] "GET > /static/css/style_chat.css" 304 - > > 2016-12-22 11:03:10,431 DEBUG HTTP 304 response started for > http.response!EdzYIGSakoQB > > 2016-12-22 11:03:10,432 DEBUG HTTP close for http.response!EdzYIGSakoQB > > 2016-12-22 11:03:10,432 DEBUG HTTP response complete for > http.response!EdzYIGSakoQB > > 127.0.0.1:50035 - - [22/Dec/2016:11:03:10] "GET > /static/js/reconnecting-websocket.min.js" > 304 - > > 2016-12-22 11:03:10,433 DEBUG HTTP 304 response started for > http.response!aGsxTkWhWXxh > > 2016-12-22 11:03:10,433 DEBUG HTTP close for http.response!aGsxTkWhWXxh > > 2016-12-22 11:03:10,433 DEBUG HTTP response complete for > http.response!aGsxTkWhWXxh > > 127.0.0.1:50013 - - [22/Dec/2016:11:03:10] "GET > /static/js/jquery-1.12.2.min.js" 304 - > > 2016-12-22 11:03:10,446 DEBUG WebSocket open for > websocket.send!GTaoMdCohNRJ > > 127.0.0.1:50038 - - [22/Dec/2016:11:03:10] "WSCONNECT /chat/stream/" - - > > 2016-12-22 11:03:10,447 DEBUG Upgraded connection > http.response!uqNYcIilOUmR to WebSocket websocket.send!GTaoMdCohNRJ > > > And the rqworker > > 2016-12-22 11:03:43,757 - DEBUG - worker - Got message on http.request > (reply http.response!lSnLnqtZGeAQ) > > 2016-12-22 11:03:43,758 - DEBUG - runworker - http.request > > 2016-12-22 11:03:43,758 - DEBUG - worker - Dispatching message on > http.request to channels.staticfiles.StaticFilesConsumer > > mysite.local > > 2016-12-22 11:03:43,775 - DEBUG - worker - Got message on > websocket.disconnect (reply websocket.send!GTaoMdCohNRJ) > > 2016-12-22 11:03:43,775 - DEBUG - runworker - websocket.disconnect > > 2016-12-22 11:03:43,775 - DEBUG - worker - Dispatching message on > websocket.disconnect to chat.consumers.ws_disconnect > > 2016-12-22 11:03:43,782 - DEBUG - worker - Got message on http.request > (reply http.response!jsOmihXNuAaw) > > 2016-12-22 11:03:43,782 - DEBUG - runworker - http.request > > 2016-12-22 11:03:43,782 - DEBUG - worker - Dispatching message on > http.request to channels.staticfiles.StaticFilesConsumer > > 2016-12-22 11:03:43,784 - DEBUG - worker - Got message on http.request > (reply http.response!LhlHYluUriEy) > > 2016-12-22 11:03:43,784 - DEBUG - runworker - http.request > > 2016-12-22 11:03:43,785 - DEBUG - worker - Dispatching message on > http.request to channels.staticfiles.StaticFilesConsumer > > 2016-12-22 11:03:43,786 - DEBUG - worker - Got message on http.request > (reply http.response!ZheYuJkmIcDU) > > 2016-12-22 11:03:43,786 - DEBUG - runworker - http.request > > 2016-12-22 11:03:43,786 - DEBUG - worker - Dispatching message on > http.request to channels.staticfiles.StaticFilesConsumer > > 2016-12-22 11:03:43,814 - DEBUG - worker - Got message on > websocket.connect (reply websocket.send!EbTqxrVaYgyb) > > 2016-12-22 11:03:43,815 - DEBUG - runworker - websocket.connect > > 2016-12-22 11:03:43,815 - DEBUG - worker - Dispatching message on > websocket.connect to chat.consumers.ws_connect > > > My current attempt with apache's proxy_module / proxy_wstunnel_module is > the following in a .conf file: > > ProxyRequests Off > ProxyPreserveHost On > > RewriteEngine on > RewriteCond %{REQUEST_URI} ^/chat/stream [NC,OR] > RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] > RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] > RewriteRule .* wss://localhost:8000%{REQUEST_URI} [P,QSA,L] > > <Location /chat/stream> > Require all granted > ProxyPass ws://localhost:8000/chat/stream > ProxyPassReverse wss://localhost:8000/chat/stream > </Location> > > <Location /chat> > Require all granted > ProxyPass http://localhost:8000/chat > ProxyPassReverse http://localhost:8000/chat > </Location> > > > Can anyone shed some light on what this could be about? Is this an apache > config issue? > > > Thanks! > > Adam > > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/django-users/a24905c5-2ee0-4e19-9b13-7cab3e16c6f6%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/a24905c5-2ee0-4e19-9b13-7cab3e16c6f6%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAFwN1urw2W99rP5yst_yYKQyNsEwUYcsB0rN7qWF4vvqmpfrOg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

