网络代理
playbook中与网络代理相关的键的目的是允许Antora在HTTP/HTTPS代理后面使用,比如在典型的企业环境中。目前这些键影响的请求包括内容聚合器中git客户端和UI加载器中的HTTP客户端发出的请求。
自动配置
默认情况下,Antora遵守行业标准的http_proxy
、https_proxy
和no_proxy
环境变量(如果设置)。这意味着即使这些键在playbook文件中未设置,Antora也可能自动代理网络请求。这反映了Antora 2中行为的一个显著变化。
http_proxy
和https_proxy
环境变量分别指定Antora应该通过哪个URL路由HTTP和HTTPS请求。no_proxy
环境变量允许请求绕过代理到达某些域或子域(即排除)。
无法使用这种方法为不同的URL配置不同的代理。唯一的URL特定配置是使用no_proxy 为某些域或子域禁用代理。 |
通过遵守这些环境变量,Antora在不必修改应用程序级别设置的情况下,实现了与代理一起工作的网络编程标准约定。这是开发基于网络的软件时遵循的约定。如果设置了这些环境变量仍然无法建立连接,那就是一个IT问题。
如果需要在不使用环境变量的情况下配置代理设置,那么只有在playbook文件中指定它们时才需要这样做。如果是这种情况,请继续阅读。
http_proxy键
http_proxy
键接受一个URL,通过该URL路由HTTP请求。URL应该只包含协议(http或https)、域(根域或子域)和端口。设置后,Antora发出的所有HTTP请求都将通过此URL路由。
network:
http_proxy: http://localhost:3128
代理URL的协议不必与原始URL的协议匹配。
https_proxy键
https_proxy
键接受一个URL,通过该URL路由HTTPS请求。URL应该只包含协议(http或https)、域(根域或子域)和端口。设置后,Antora发出的所有HTTPS请求都将通过此URL路由。
network:
https_proxy: http://localhost:3128
代理URL的协议不必与原始URL的协议匹配。
no_proxy键
no_proxy
键指定代理排除项。这些排除项表示为逗号分隔的域或子域列表。如果请求的URL与这些值之一匹配,则即使为URL的协议(http或https)配置了代理,也不会通过代理路由。
network:
no_proxy: gitlab.com,github.com
要关闭所有请求的代理,请将此值设置为*
。
network:
no_proxy: '*'
Antora 2不遵守http_proxy
和https_proxy
环境变量。如果您从Antora 2迁移到Antora 3,并遇到网络错误(Bad response: 503),Antora 3中的自动代理支持可能是问题所在。如果代理妨碍Antora连接到端点,您可能需要使用no_proxy
键绕过代理。如果您不想修改playbook,可以使用CLI选项指定此键:
$ antora --noproxy '*' antora-playbook.yml
但是,如果有必要,您可能需要了解为什么代理无法路由请求。