- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 WordPress Traefik 配置包含以下 docker-labels:
- "traefik.backend=wordpress"
- "traefik.docker.network=web"
- "traefik.frontend.rule=Host:MyHostName.net;PathPrefix:/blog"
- "traefik.enable=true"
- "traefik.port=80"
现在请求 url“https://MyHostName/blog”似乎可以到达服务,该服务似乎返回到“https://MyHostName/wp-admin...”的重定向。
我无法使用子域。
我该如何解决这个问题?
更新0
首先要做的应该是添加过滤器“PathPrefixStrip:/blog”,以在将请求转发到服务时删除“/blog”前缀。对吗?
但是如何修改(例如)重定向请求以将前缀“/blog”添加到重定向 URL?
更新1
在https://github.com/containous/traefik/issues/985我的问题是“讨论”,解决方案似乎已合并( https://github.com/containous/traefik/pull/1442 )。
简而言之:剥离的前缀将作为相应的 header 添加(X-Forwarded-Prefix)。
我会检查并在这里写下结果。
其他资源:
更新2
现在我创建了一个如下所示的请求:
https://MYHOSTNAME/blog
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: de,en-US;q=0.7,en;q=0.3
Connection: keep-alive
Cookie: ocuvhr6ala6i=d2cd9020839889a752b4375a63dedad0; oc_sessionPassphrase=qJu13Q%2FlAoSsv5b0qC18Re%2BcrcML6o32c2XuDJEGViIMI4uERIf%2Bs77DvFbMSkEBkZs%2Bn%2FfnUjdB9APvk4zq2qlj6AiDXX2CGYf31MPVci8HkgcsXFcpL7cRLBbRGRWS; __Host-nc_sameSiteCookielax=true; __Host-nc_sameSiteCookiestrict=true
Host: MYHOSTNAME
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0
“PathPrefixStrip”似乎在 CLIENT>>SERVICE 方向上工作。这是我的 traefik 日志包含的内容:
traefik | time="2018-04-04T18:12:54Z" level=debug msg="vulcand/oxy/roundrobin/rr: competed ServeHttp on request" Request="
{
"Method":"GET",
"URL":{
"Scheme":"",
"Opaque":"",
"User":null,
"Host":"",
"Path":"/",
"RawPath":"",
"ForceQuery":false,
"RawQuery":"",
"Fragment":""
},
"Proto":"HTTP/2.0",
"ProtoMajor":2,
"ProtoMinor":0,
"Header":{
"Accept":[
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
],
"Accept-Encoding":[
"gzip, deflate, br"
],
"Accept-Language":[
"de,en-US;q=0.7,en;q=0.3"
],
"Cookie":[
"ocuvhr6ala6i=d2cd9020839889a752b4375a63dedad0; oc_sessionPassphrase=qJu13Q%2FlAoSsv5b0qC18Re%2BcrcML6o32c2XuDJEGViIMI4uERIf%2Bs77DvFbMSkEBkZs%2Bn%2FfnUjdB9APvk4zq2qlj6AiDXX2CGYf31MPVci8HkgcsXFcpL7cRLBbRGRWS; __Host-nc_sameSiteCookielax=true; __Host-nc_sameSiteCookiestrict=true"
],
"Upgrade-Insecure-Requests":[
"1"
],
"User-Agent":[
"Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0"
],
"X-Forwarded-Prefix":[
"/blog"
]
},
"ContentLength":0,
"TransferEncoding":null,
"Host":"MYHOSTNAME",
"Form":null,
"PostForm":null,
"MultipartForm":null,
"Trailer":null,
"RemoteAddr":"81.128.35.176:33468",
"RequestURI":"/",
"TLS":null
}
"
但重定向答案在我的浏览器中如下所示:
HTTP/2.0 302 Found
cache-control: no-cache, must-revalidate, max-age=0
content-length: 0
content-type: text/html; charset=UTF-8
date: Wed, 04 Apr 2018 18:44:18 GMT
expires: Wed, 11 Jan 1984 05:00:00 GMT
location: https://MYHOSTNAME/wp-admin/install.php
server: Apache/2.4.25 (Debian)
X-Firefox-Spdy: h2
x-powered-by: PHP/7.2.2
因此重定向响应不包含有关剥离路径前缀“/blog”的任何信息。
更新3
最后看起来像是容器内的服务软件不处理 header 的问题。
其他资源:
有什么想法吗?
最佳答案
从 v2.0 开始,Traefik 不再支持 PathPrefixStrip
,您需要使用本文指定的中间件:https://doc.traefik.io/traefik/migration/v1-to-v2/#strip-and-rewrite-path-prefixes 😊
关于redirect - 使用路径前缀规则时如何用Traefik重写路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49638655/
我正在尝试使用两个域和使用 Let's Encrypt 生成的证书来设置 traefik 的 dockerized 版本。 我已经修改了 traefik.toml 看起来像这样: [acme] e
traefik.frontend.rule=Host:example.com 将对 example.com 的请求重定向到该后端。那么traefik.domain有什么用呢? 最佳答案 默认前端规则为
traefik.frontend.rule=Host:example.com 将对 example.com 的请求重定向到该后端。那么traefik.domain有什么用呢? 最佳答案 默认前端规则为
我使用 docker compose(运行 swarm 模式)进行了以下设置: mydomain.com --> ContainerA:8080 但我想要的是通过标签,为同一个容器指定以下内容: my
我正在尝试使用 Traefik 在我的 Docker Swarm 模式集群中部署代理多个应用程序。 我已经得到它以便它代理一个命名的主机,但我希望它代理一个命名的主机和路径,但我无法计算出我需要使用的
我绝对爱上了 Traefik。然而,作为初学者,我想念 Nginx 风格 nginx -t来验证配置文件。 我在 docker 容器中运行 traefik,每当我更新我的配置文件(*.toml 文件)
我决定将 traefik 的版本从 1.7.x 升级到 2.2.1。 所以我遵循了上述解决方案的指导方针(https://gist.github.com/fatihyildizhan/8f124039
我们使用 traefik 来反向代理我们的微服务环境,在 Kubernetes 的 staging 和 prod 上运行,并在本地使用 docker-compose。我们正在尝试将请求代理到特定微服务
如何为日志文件启用日志轮换,例如访问.log。 这是内置的吗? 文档只说“这允许日志由外部程序旋转和处理,例如 logrotate” 最佳答案 如果您正在运行 Traefik 在 docker 容器然
我需要像这样重写我的应用程序的 URL:https://router.vuejs.org/guide/essentials/history-mode.html#example-server-confi
我需要将 SSL 连接直接发送到后端,而不是在我的 Traefik 上解密。后端需要接收https请求。 我尝试了 traefik.frontend.passTLSCert=true 选项,但是当我访
使用 docker,我尝试使用 HTTPS 端口 443 设置 traefik 后端,因此 traefik 容器和应用程序容器(apache 2.4)之间的通信将被加密。 我收到了 Internal
我有一个容器('矩阵'),基于 https://github.com/silvio/docker-matrix (虽然这可能并不重要)。 它在端口 8448 和 3478(不是 80 或 443)上运
我是 Docker 和 Traefik 的新手,所以我决定和他们一起玩一下。我试着按照这个 digital ocean 教程:https://www.digitalocean.com/communit
我有一个“服务器”设置,在容器中运行多个服务,其中 traefik 工作得很好。我想为在单独计算机上运行的服务添加虚拟主机,以便我可以访问 hassio.domain.com 并转发到该服务器。有一次
我已经将 Traefik 设置为在 Docker Swarm 模式下工作。我已使用以下命令将 Portainer 部署到集群中: docker service create
我正在从 Nginx 迁移到 Traefik 作为 Docker Swarm 的反向代理。 目前,每个带有 Bearer Token 的请求都会被发送到身份验证服务(在 Swarm 中运行的微服务),
使用 docker 容器中的 Traefix 1.2.3 版,我设置了以下文件。 traefik: image: traefik command: --web --docker --docke
我正在考虑为我的网络项目 (Kestrel/.Net Core) 将 Apache 替换为 Traefik。阅读文档后,关于 Traefik,我还有一些不清楚的地方: 1/Traefik 是否自动处理
我提前为我对 Traefik 的新手理解道歉,但有没有办法重写“非 www”域 带有基于请求的变量 ? 我已经在谷歌上搜索了一个多小时,找不到答案。 这是我如何在 Apache 中执行此操作的示例。你
我是一名优秀的程序员,十分优秀!