我在Traefik反向代理中遇到问题:它使用自己的cookie来存储后端服务器的IP地址,但有时这不能正常工作,因为cookie的路径不是'/'
,而是使用网页默认为例如'/myapp/page'
。
我的问题是该应用程序还使用了其他路径,例如'/myapp/api'
,但它被路由到另一个实例。
由于它是遗留应用程序,因此无法将会话数据存储在其他外部会话存储中。我使用docker swarm来管理docker容器。
如何在Traefik中设置cookie的路径?
答案 0 :(得分:1)
目前,您无法自定义Cookie路径 - Traefik目前根本没有设置它(a known issue)。
始终设置根路径(<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<style>
#imageholder:hover {
cursor: crosshair;
}
</style>
<style>
article,
aside,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
#imageholder div {
display: none;
background-color: black;
position: absolute;
}
#imageholder {
position: relative;
display: inline-block;
overflow: hidden;
}
#vertical {
width: 2.5px;
height: 100%;
}
#horizontal {
width: 100%;
height: 2.5px;
}
</style>
</head>
<body>
<h1>Some Text</h1>
<h2>Some other text</h2>
<div id="imageholder">
<div id="horizontal"></div>
<div id="vertical"></div>
<img src="http://i.imgur.com/dRUn4ip.png">
</div>
<script class="jsbin" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</div>
<script type="text/javascript">
$('#imageholder img').on('click', null, [$('#horizontal'), $('#vertical')], function(e) {
e.data[1].css('left', e.offsetX == undefined ? e.originalEvent.layerX : e.offsetX);
e.data[0].css('top', e.offsetY == undefined ? e.originalEvent.layerY : e.offsetY);
$('#imageholder').click(function(event) {
var hor = event.offsetX + 4.15,
ver = event.offsetY + 4;
$(".marker").remove();
$("body").append(
$('<div class="marker" style="border-radius: 25px;"></div>').css({
position: 'absolute',
top: ver + 'px',
left: hor + 'px',
width: '10px',
height: '10px',
background: '#5b5e5f'
})
);
});
e.data[0].show();
e.data[1].show();
$(document).ready(function() {
$('#imageholder').mouseover(function() {
$(".marker").css("box-shadow", "0 0 0 3px rgba(0, 0, 0, 0.5)");
});
$('#imageholder').mouseout(function() {
$(".marker").css("box-shadow", "none");
});
});
});
</script>
</body>
</html>
)和/或确定前端路径的路径方向considerations。如果您觉得Traefik在这方面缺少定制需求,请随意加入现有问题或创建一个新问题。