gpt4 book ai didi

redirect - 使用路径前缀规则时如何用Traefik重写路径?

转载 作者:行者123 更新时间:2023-12-02 18:57:17 45 4
gpt4 key购买 nike

我的 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/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com