网络代理

playbook中与网络代理相关的键的目的是允许Antora在HTTP/HTTPS代理后面使用,比如在典型的企业环境中。目前这些键影响的请求包括内容聚合器中git客户端和UI加载器中的HTTP客户端发出的请求。

自动配置

默认情况下,Antora遵守行业标准的http_proxyhttps_proxyno_proxy环境变量(如果设置)。这意味着即使这些键在playbook文件中未设置,Antora也可能自动代理网络请求。这反映了Antora 2中行为的一个显著变化。

http_proxyhttps_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路由。

示例1. antora-playbook.yml
network:
  http_proxy: http://localhost:3128

代理URL的协议不必与原始URL的协议匹配。

https_proxy键

https_proxy键接受一个URL,通过该URL路由HTTPS请求。URL应该只包含协议(http或https)、域(根域或子域)和端口。设置后,Antora发出的所有HTTPS请求都将通过此URL路由。

示例2. antora-playbook.yml
network:
  https_proxy: http://localhost:3128

代理URL的协议不必与原始URL的协议匹配。

no_proxy键

no_proxy键指定代理排除项。这些排除项表示为逗号分隔的域或子域列表。如果请求的URL与这些值之一匹配,则即使为URL的协议(http或https)配置了代理,也不会通过代理路由。

示例3. antora-playbook.yml
network:
  no_proxy: gitlab.com,github.com

要关闭所有请求的代理,请将此值设置为*

示例4. antora-playbook.yml
network:
  no_proxy: '*'

Antora 2不遵守http_proxyhttps_proxy环境变量。如果您从Antora 2迁移到Antora 3,并遇到网络错误(Bad response: 503),Antora 3中的自动代理支持可能是问题所在。如果代理妨碍Antora连接到端点,您可能需要使用no_proxy键绕过代理。如果您不想修改playbook,可以使用CLI选项指定此键:

$ antora --noproxy '*' antora-playbook.yml

但是,如果有必要,您可能需要了解为什么代理无法路由请求。