这些说明适用于Azure AKS用户,但对于Facebook/社交财产预览链接(显示为308永久重定向)的解决方案可能适用于任何云提供商(尽管尚未测试),您只需更改登录/获取凭据的方式等。
感谢Rico的解决方案!因为这只在Facebook上测试过,所以你可能会或者可能不想使用configmap应用程序路径(上面提到过),这将通过手动编辑configmap而不是使用
kubectl apply -f
应用本地保存的一个。
-
为您的cluser获取az证书(
az login
)
-
承担集群的角色:
az aks get-credentials --resource-group yourGroup --name your-cluster
-
浏览群集:
az aks browse --resource-group yourGroup --name your-cluster
-
导航到包含入口nginx容器的名称空间(不是后端服务),尽管它们可能在同一个ns中。
-
在左侧导航菜单(设置上方)上找到“configmaps”选项卡并单击它。
-
编辑yaml的“data”元素并添加以下行(注意键/值中名称和数字的引号):
"data": {
"some-other-setting-here": "false",
"http-redirect-code": "301"
}
除了最后一行之外,每个键/值行后面都需要一个逗号。
-
删除后重新启动nginx控制器盒
确保
您不会像我一样删除部署。
-
如果您想提高生产效率,可以升级nginx安装(从helm),该安装将通过以下方式在流程中重新启动/重新创建容器:
helm upgrade ngx-ingress stable/nginx-ingress
其中,ngx entress是您的头盔安装的名称。还要注意,使用“--reuse values”标志将导致升级失败(请重新:
https://github.com/helm/helm/issues/4337
)
-
如果您不知道您在安装时使用的Nginx名称,您可以使用
helm list
找到它。
-
最后,为了测试并确保您的重定向使用了正确的configmap代码,请将您的HTTP站点卷曲为:
curl myhttpdomain.com
您应该收到这样的信息:
` `
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.15.3</center>
</body>
</html>
` `
这里要注意的一件重要的事情是,如果你正在修改301,请重新直接尝试修复Facebook或其他社交媒体属性(Twitter等)的预览链接,那么很可能这不会修复任何链接到你已经链接到的任何页面/帖子,至少不会立即修复。
社交属性都使用强缓存来限制其资源使用,但您可以通过链接到以前未引用的新页面/文章来查看上面的内容是否修复了预览链接问题。
注意“post”的含义
因此,nginx entress使用代码308的主要原因是,在您发送POST请求的情况下,它会保持“body”(正文)/有效载荷不变(与使用浏览器进行的普通GET请求链接相反)。
对我来说,这不是一个问题,但是如果你出于任何原因将邮件发送到HTTP地址,并希望能够无缝地重新定向,那么在你切换到邮件中讨论的301重定向之后,这可能不起作用。
但是,如果你在发送帖子请求时没有期望一个无缝的重定向(我认为大多数人可能没有,我知道我没有),那么我认为这是修复Facebook 308永久重定向行为的最佳方法。