NGINX代理将HTTP GET请求而不是WebSocket握手传递给我的django应用程序.
事实:
相关日志:
通过容器化nginx代理连接时的Daphne日志:
`xxx.xxx.xxx.xxx:40214 - - [24/May/2017:19:16:03] "GET /flight/all_flight_updates" 404 99`
Run Code Online (Sandbox Code Playgroud)
Daphne在绕过容器化代理并直接连接到服务器时进行日志记录:
xxx.xxx.xxx.xxx:6566 - - [24/May/2017:19:17:02] "WSCONNECTING /flight/all_flight_updates" - -
xxx.xxx.xxx.xxx:6566 - - [24/May/2017:19:17:02] "WSCONNECT /flight/all_flight_updates" - -
Run Code Online (Sandbox Code Playgroud)
nginx(非容器化)配置的localhost测试工作:
[2017/05/24 14:24:19] WebSocket HANDSHAKING /flight/all_flight_updates [127.0.0.1:65100]
[2017/05/24 14:24:19] WebSocket CONNECT /flight/all_flight_updates [127.0.0.1:65100]
Run Code Online (Sandbox Code Playgroud)
配置文件:
我的docker-compose.yml:
version: '3'
services:
db:
image: postgres
redis:
image: redis:alpine
web:
image: nginx
ports:
- '80:80'
volumes:
- ./deploy/proxy.template:/etc/nginx/conf.d/proxy.template
links:
- cdn
- app
command: /bin/bash -c "envsubst '' < …Run Code Online (Sandbox Code Playgroud)