在隐藏在 nginx 反向代理后面的 wiki.js 解决方案中,wiki.js 正在处理身份验证 - 我不确定细节,但它似乎为此使用了 jwt
cookie。
我在同一个 docker-compose 设置中也有一个 Plantuml 服务器,该服务器当前无需身份验证即可访问,但我只想让经过 wiki.js 身份验证的用户访问 Plantuml。
顺便说一句,如果用户在退出 wiki.js 后仍然可以访问 plantuml 一段时间,这也没什么大不了的,如果这能让事情变得更容易的话。但是他们应该至少成功登录一次才能访问plantuml。我只是想防止互联网上的每个人都可以使用这个plantuml服务器。
这是当前解决方案的 nginx conf 片段,它至少可以防止没有 jwt
cookie 的任何人访问服务器。不是很安全,但它很简单,我想至少有点有效。
location / {
proxy_pass http://wiki:3000/;
}
location /plantuml/ {
if ($cookie_jwt = "") {
return 404;
}
proxy_pass http://plantuml:8080/;
}