【问题标题】:Nginx reverse proxy subdirectory vai proxy_pass for BookstackNginx 反向代理子目录 vai proxy_pass for Bookstack
【发布时间】:2019-12-22 07:00:07
【问题描述】:

我正在从 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 应用程序,所以我正在寻找一种解决方案,我能够简单地指导从不同容器提供的子目录.

我错过了什么?

【问题讨论】:

    标签: docker nginx nginx-reverse-proxy nginx-config


    【解决方案1】:

    所以我最终尝试了更多,最终发现了有效的方法:

            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;
            } 
    

    特别是,我必须使用 $is_args$args 来转发查询词。

    我不完全了解此配置与我在问题中发布的配置之间的区别。因此,如果任何人都可以解释这将有助于其他人的概念理解。

    致谢:https://www.techandme.se/set-up-nginx-reverse-proxy/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      • 2018-12-15
      • 1970-01-01
      • 2019-05-03
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多