【发布时间】:2021-07-31 02:21:11
【问题描述】:
我正在使用 docker traefik 并在该 varnish 后面进行缓存,而我的网站在 varnish 后面。 这是我的网站和清漆服务的 docker-compose:
version: "3.7"
services:
dev-ui-service:
image: mywebsite.ui:latest
networks:
- localnetwork
varnish:
image: myvarnish:latest
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.ui.rule=Host(`mydomain.com`)"
- "traefik.http.routers.ui.entrypoints=web"
- "traefik.http.services.ui.loadbalancer.server.port=80"
- "traefik.http.routers.ui-secured.rule=Host(`mydomain.com`)"
- "traefik.http.routers.ui-secured.entrypoints=web-secured"
- "traefik.http.routers.ui-secured.tls.certresolver=mytlschallenge"
- "traefik.docker.network=traefik-proxy"
mode: replicated
replicas: 1
resources:
limits:
cpus: '0.5'
memory: 200M
reservations:
cpus: '0.2'
memory: 20M
networks:
- localnetwork
- traefik-proxy
depends_on:
- dev-ui-service
networks:
localnetwork:
traefik-proxy:
external: true
这是我的 default.vcl 文件:
vcl 4.0;
backend default {
.host = "dev-ui-service";
.port = "4200";
}
# If you don't include below, header Age in response to client always be 0
sub vcl_deliver {
# Display hit/miss info
if (obj.hits > 0) {
set resp.http.V-Cache = "HIT";
}
else {
set resp.http.V-Cache = "MISS";
}
set resp.http.Access-Control-Allow-Origin = "*";
set resp.http.Access-Control-Allow-Headers = "Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With";
set resp.http.Allow = "GET, POST";
set resp.http.Access-Control-Allow-Credentials = "true";
set resp.http.Access-Control-Allow-Methods = "GET, POST, PUT, DELETE, OPTIONS, PATCH";
set resp.http.Access-Control-Expose-Headers = "X-Pagination-Total, X-Pagination-Page, X-Pagination-Limit";
}
sub vcl_backend_response {
if (beresp.status == 200) {
unset beresp.http.Cache-Control;
set beresp.http.Cache-Control = "public; max-age=200";
set beresp.ttl = 200s;
}
set beresp.http.Served-By = beresp.backend.name;
set beresp.http.V-Cache-TTL = beresp.ttl;
set beresp.http.V-Cache-Grace = beresp.grace;
}
一切都很好,但清漆不支持 https 所以所有来自 https MISS 的请求。 当请求从 traefik 发送到清漆时,我如何终止 SSL?
【问题讨论】: