代理配置
在软件开发中,代理就像是一个“中间人”,它帮我们控制对某个功能或资源的访问。使用代理可以实现权限检查、记录操作日志、缓存数据、延迟加载等功能,而不用改动原来的代码。这样可以让程序更安全、运行更快,也更容易维护和扩展。本文为您介绍V2.0 Go SDK对于代理的配置方式。
代理类型
支持配置HTTP代理、HTTPS代理和SOCKS5代理。在实际使用中,建议选择其中一种代理使用。
代理类型 | 描述 |
HTTP代理 | 通过参数 httpProxy 配置代理服务器地址和端口,格式为: |
HTTPS代理 | 通过参数 httpsProxy 配置代理服务器地址和端口,格式为: |
SOCKS5代理 | 使用SOCKS5代理时,需要同时设置 socks5Proxy和 Socks5NetWork 两个参数,其中socks5Proxy用于配置代理服务器地址和端口,格式为: |
若代理服务器要求身份认证才能进行访问,请在IP地址前添加代理服务器配置的用户名和密码,格式为:http://<user>:<password>@<IP地址>:<端口>
或socks5://<user>:<password>@<IP地址>:<端口>
。
此外,在使用HTTP代理或HTTPS代理时,可通过参数noProxy指定无需通过代理访问的地址列表,多个地址之间用逗号分隔,支持域名和IP地址格式。
代理配置方式
代理配置优先级:RuntimeOptions配置 -> Config配置 -> 环境变量配置,优先级依次降低。
通过环境变量配置。
说明SOCKS5代理配置参数不支持使用环境变量。
通过环境变量参数
HTTP_PROXY
或http_proxy
指定代理服务器地址。通过环境变量参数
HTTPS_PROXY
或https_proxy
指定代理服务器地址。通过环境变量参数
NO_PROXY
或no_proxy
指定无需通过代理访问的地址列表。
通过运行时参数(RuntimeOptions)配置代理,仅对使用了该运行时参数的请求有效。
import ( util "github.com/alibabacloud-go/tea-utils/v2/service" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" ) config := &openapi.Config{ Protocol: tea.String("https"), } runtime := &util.RuntimeOptions{ // 使用时需修改请求协议(Protocol),httpsProxy仅对https协议有效,httpProxy仅对http协议有效。 HttpProxy: tea.String("http://127.0.0.1:9898"), HttpsProxy: tea.String("http://127.0.0.1:8989"), NoProxy: tea.String("127.0.0.1,localhost"), // SOCKS5代理 // Socks5Proxy: tea.String("socks5://127.0.0.1:8989"), // Socks5NetWork: tea.String("tcp"), }
在初始化云产品客户端实例时,通过Config配置代理,对所有请求都生效。
示例代码如下:
import ( openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" "github.com/alibabacloud-go/tea/tea" ) config := &openapi.Config{ // httpsProxy仅对https协议有效,httpProxy仅对http协议有效。 Protocol: tea.String("https"), // HTTP代理 HttpProxy: tea.String("http://127.0.0.1:9898"), // HTTPS代理 HttpsProxy: tea.String("http://127.0.0.1:8989"), NoProxy: tea.String("127.0.0.1,localhost"), // SOCKS5代理 // Socks5Proxy: tea.String("socks5://127.0.0.1:8989"), // Socks5NetWork: tea.String("tcp"), }
相关文档
代理配置相关实践文档,请参见HTTP代理配置实践。