我正在从https://github.com/linuxserver/docker-bookstack
运行Bookstack Docker容器
该容器在Ubuntu主机上运行,当我直接通过其http://:
访问它时,我可以完美地使用它我有一个要配置的Windows主机上运行的Nginx服务器,以便在我访问https://myhost.tld/kb
时将其代理到Ubuntu主机。以下是为此的ngnix配置:
location ~/kb(.*)$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://<ubuntu-ip>:<port>$1;
}
在Bookstack容器中,我将.env文件APP_URL设置为https://myhost.tld/kb
我访问https://myhost.tld/kb
时,不会加载任何静态资产。
我尝试了各种位置匹配组合,例如/kb/
url重写等,以及在位置url和proxy_pass url中都添加/删除尾部斜杠的组合,但无济于事。
直接从Windows主机提供静态资产不是一种选择,因为我的计划是在不同目录中提供多个docker应用程序,因此我正在寻找一种解决方案,能够直接指示要从不同容器提供服务的子目录
我想念什么?
答案 0 :(得分:0)
所以我结束了更多的实验,终于发现了可行的方法:
{0,24}
特别是,我不得不使用 location ~/kb(.*)$ {
proxy_pass_header Authorization;
proxy_pass http://<ip>:<port>$1$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect off;
}
来转发查询词。
我不完全了解此配置与我在问题中发布的配置之间的区别。因此,如果有人可以解释说,这对其他人的概念理解将是有益的。