我最近在启用Docker Swarm的集群上的Docker容器中设置了Traefik v.1.7.14。作为测试,我创建了一个简单的服务:
ArrayList
如上面的代码所述,我只是在URL上指定的子域docker service create --name demo-nginx \
--network traefik-net \
--label traefik.app.port=80 \
--label traefik.app.frontend.auth.basic="test:$$apr1$$LG8ly.Y1$$1J9m2sDXimLGaCSlO8.T20" \
--label traefik.app.frontend.rule="Host:t.myurl.com" \
nginx
上安装了nginx。
运行此代码时,将成功创建服务。 Traefik还在traefik api和traefik管理员中显示了该服务。
在traefik api中,后端服务的报告如下:
t
当我去访问"frontend-Host-t-myurl-com-0": {
"entryPoints": [
"http",
"https"
],
"backend": "backend-demo-nginx",
"routes": {
"route-frontend-Host-t-myurl-com-0": {
"rule": "Host:t.myurl.com"
}
},
"passHostHeader": true,
"priority": 0,
"basicAuth": null,
"auth": {
"basic": {}
}
时,如预期的那样,我收到身份验证提示。
但是,当我输入用户名/密码(在这种情况下为test:test)时,登录提示只会再次提示我,并且不对我进行身份验证。
我已检查确保使用以下命令转义docker标签中的字符:
t.myurl.com
生成密码。
作为测试的一部分,我还尝试关闭了 https 入口点,因为我想查看此循环是否是由ssl触发的。这似乎对解决此问题没有任何影响(规则:echo $(htpasswd -nb test test) | sed -e s/\\$/\\$\\$/g
)。 Traefik在这样做后确实对--label traefik.app.frontend.entryPoints=http
做出了正确的响应,但是密码身份验证仍然陷入了与以前相同的提示循环中。
删除http
标签后,我可以通过我的网址(t.myurl.com)访问我的网站。因此,此问题似乎是在基本身份验证功能内隔离的。
我的DNS提供商是Cloudflare。
如果有人有任何想法,我将不胜感激。
答案 0 :(得分:0)
也许您可以尝试以下方法:
$$
因为在命令行中不需要两个<p><?= $content ?: $post->post_excerpt ?></p>
。