用于服务器端事件的 Traefik conf
Traefik conf for server-side events
我正在尝试使用 Traefik 正确设置服务器端事件,但无济于事。
我有一个 Django 服务器,它有一个发送 sse 的 URL,我可以使用这个简单的 conf 轻松地使用 nginx 代理:
server {
listen 80;
server_name _ ;
charset utf-8;
client_max_body_size 20M;
location / {
proxy_pass http://django:8000;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
}
在 traefik 中使用 docker 我设置的标签:
labels:
- "traefik.enable=true"
- "traefik.http.routers.dj.rule=Host(`$HOST_ADK`)"
- "traefik.http.routers.dj.entrypoints=web"
- "traefik.http.routers.dj.service=dj"
- "traefik.http.services.dj.loadbalancer.server.port=8000"
#- "traefik.http.routers.dj.middlewares=compress-no-stream"
#- "traefik.http.middlewares.compress-no-stream.compress=true"
#- "traefik.http.middlewares.compress-no-stream.compress.excludedcontenttypes=text/event-stream"
这解决了内部服务器错误。当使用 运行 服务器(即 docker 中使用的非 Daphne)代理到 django 运行 时,我收到“名称解析暂时失败”并且我不明白它指的是什么。
关于使服务器发送事件起作用的正确配置的任何提示?
事实证明,用 sse 响应的 Django 视图将 2 设置为相同 headers,这让 Traefik 很生气。
关于 issue 的完整解释。
修复后 headers 一切正常。
我正在尝试使用 Traefik 正确设置服务器端事件,但无济于事。 我有一个 Django 服务器,它有一个发送 sse 的 URL,我可以使用这个简单的 conf 轻松地使用 nginx 代理:
server {
listen 80;
server_name _ ;
charset utf-8;
client_max_body_size 20M;
location / {
proxy_pass http://django:8000;
proxy_http_version 1.1;
proxy_set_header Host $host;
}
}
在 traefik 中使用 docker 我设置的标签:
labels:
- "traefik.enable=true"
- "traefik.http.routers.dj.rule=Host(`$HOST_ADK`)"
- "traefik.http.routers.dj.entrypoints=web"
- "traefik.http.routers.dj.service=dj"
- "traefik.http.services.dj.loadbalancer.server.port=8000"
#- "traefik.http.routers.dj.middlewares=compress-no-stream"
#- "traefik.http.middlewares.compress-no-stream.compress=true"
#- "traefik.http.middlewares.compress-no-stream.compress.excludedcontenttypes=text/event-stream"
这解决了内部服务器错误。当使用 运行 服务器(即 docker 中使用的非 Daphne)代理到 django 运行 时,我收到“名称解析暂时失败”并且我不明白它指的是什么。
关于使服务器发送事件起作用的正确配置的任何提示?
事实证明,用 sse 响应的 Django 视图将 2 设置为相同 headers,这让 Traefik 很生气。
关于 issue 的完整解释。
修复后 headers 一切正常。