如何在具有子上下文的反向代理后面设置 Artifactory

如何在具有子上下文的反向代理后面设置 Artifactory

我正在尝试在 NGINX 反向代理后面设置 Artifactory (CPP-CE),并使用自定义上下文。即所有 Artifactory URL 都应位于某个顶级上下文 (例如/conan) 后面。因此,UI URL 应该位于https://server.com/conan/ui,而存储库端点位于 后面https://server.com/conan/artifactory

我似乎找不到办法告诉 Artifactory 这一点。老实说,文档并不是特别有用。

我尝试设置X-Artifactory-Override-Base-Url$http_x_forwarded_proto://$host:$server_port/conan/artifactory或,但没有效果。在将请求传递给 Artifactory 时,$http_x_forwarded_proto://$host:$server_port/conan/请求 URL 被重写以删除部分。/conan

尽管如此,尝试从浏览器访问https://server.com/conan/ui会吐出一个带有引用的 HTML,/ui/...并且访问https://server.com/conan/artifactory会返回一个重定向到/ui(完全忽略在中指定的任何上下文部分X-Artifactory-Override-Base-Url

这样设置是否可行?我需要更改 Artifactory 内部的某些配置才能完成此操作吗?我看到有一个通过 API 提供的反向代理配置,但文档没有解释它到底是做什么的,据我所知,它只是生成反向代理块。

整个 NGINX 位置配置如下:

        location /conan {
                proxy_read_timeout  2400s;
                proxy_pass_header   Server;
                proxy_cookie_path   /conan/ /;
                rewrite ^/conan/(.*) /$1 break;
                proxy_pass          http://localhost:9082;
                proxy_next_upstream error timeout non_idempotent;
                proxy_next_upstream_tries    1;
                proxy_set_header    X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host:$server_port/conan/artifactory;
                proxy_set_header    X-Forwarded-Port  $server_port;
                proxy_set_header    X-Forwarded-Proto $http_x_forwarded_proto;
                proxy_set_header    Host              $http_host;
                proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
        }

相关内容