内容中心阿里云国际版跨境加速,全球加速和Squid 缓存代理解决方案

阿里云国际版跨境加速,全球加速和Squid 缓存代理解决方案

2022-04-14 14:28:15

在这篇博客中,87cloud将详细讨论使用阿里云全球加速和 Squid 缓存代理构建跨境加速解决方案所需的步骤。

解决方案概述

该解决方案利用阿里云全球加速 (GA) 服务来加速访问中国境外托管的服务,例如 salesforce.com。

此解决方案中有 3 个主要组件:

  • 一个在海外区域运行 Squid 缓存代理的 ECS 实例。
  • 一个具有跨境带宽包的GA实例,在中国大陆分配加速IP地址。
  • 一个对象存储服务 (OSS) 存储桶托管用于客户端代理自动配置的 PAC 文件。

在此解决方案中,我们设置了中国大陆客户端浏览器,这些浏览器通过OSS存储桶中托管的PAC文件配置GA加速IP地址作为代理。GA 实例将指定域名的客户端请求“转发”到美国 squid 代理,保证带宽和低时延。

本博客的以下部分将分享有关如何实现此解决方案和配置这 3 个主要组件的分步指南。

步骤 1:在美国设置 Squid 缓存代理

1.1 创建专有网络和交换机

前往专有网络控制台。在美国(硅谷)地域或靠近待加速服务的区域创建专有网络和交换机。您可以选择默认网段。

1.2 创建 ECS 实例

进入弹性云服务器管理控制台。建议在 VPC、CentOS 或 Ubuntu OS 中创建 ECS 实例。根据需要分配公共 IP 地址并设置峰值带宽。

实例启动运行后,还建议将公有 IP 地址转换为 EIP,以获得更大的灵活性。有关详细信息,请参阅 https://www.alibabacloud.com/help/doc-detail/61290.htm。

1.3 配置安全组

单击实例名称,然后单击导航栏中的安全组以打开安全组页面。单击关联的安全组,然后单击添加安全组规则,并允许 TCP 端口 3128(Squid 的默认端口)从 0.0.0.0/0。

1.4 安装鱿鱼

登录 ECS 实例

ssh root@47.254.84.24

安装鱿鱼:

对于 CentOS,请运行以下代码:

yum install -y squid

对于 Ubuntu,请运行以下代码:

apt install -y squid

1.5 配置 Squid 基本身份验证

您的代码将取决于操作系统的选择,因此请格外注意。

CentOS:

yum install -y httpd-tools

touch /etc/squid/passwd

chown squid /etc/squid/passwd

htpasswd /etc/squid/passwd sfuser

Ubuntu:

apt install -y apache2-utils

touch /etc/squid/passwd

chown proxy /etc/squid/passwd

htpasswd /etc/squid/passwd sfuser

使用以下命令验证基本身份验证:

CentOS:

/usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd

Ubuntu:

/usr/lib/squid/basic_ncsa_auth /etc/squid/passwd

该命令等待用户名和密码对以空格分隔。如果返回“OK”,则身份验证工作正常。如果返回“ERR”,请使用重置密码,然后重试。htpasswd

1.6 配置鱿鱼 ACL

在编辑器中打开。/etc/squid/squid.conf

添加以启用基本身份验证auth_param

Ubuntu:在部分末尾的行之后添加以下行:auth_param#Default: none

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd

auth_param basic children 5

auth_param basic realm Squid Basic Authentication

auth_param basic credentialsttl 2 hours

CentOS:在文件开头添加以下行:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd

auth_param basic children 5

auth_param basic realm Squid Basic Authentication

auth_param basic credentialsttl 2 hours

在本节中添加以下行,在以下行之后:http_access# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

acl auth_users proxy_auth REQUIRED

acl allowed_domains dstdomain .salesforce.com .force.com .sfdcstatic.com ip.me

http_access allow auth_users allowed_domains

注意:将之后的域列表替换为任何域名以允许访问。使用空格分隔条目。要匹配子域,请添加前导点。acl allowed_domains dstdomain

还要确保紧跟在这些行之后。http_access deny all

但是,可能存在并且介于两者之间。 很好。但请注释掉,因为这将覆盖 和 所有本地网络 IP 范围,包括 、、等。http_access allow localhosthttp_access allow localnethttp_access allow localhosthttp_access allow localnetauth_usersallowed_domains acl10.0.0.0/8172.16.0.0/12192.168.0.0/16

重新启动鱿鱼并检查状态

systemctl restart squid

systemctl status squid

1.7 验证 Squid 配置

在 Linux 或 macOS 系统中,运行以下命令:

curl -x 47.254.84.24:3128 -U sfuser:<password> ip.me

“-x”选项指定代理服务器和端口。

“-U”选项指定用于基本身份验证的用户名:密码。替换为 1.5 中设置的实际密码。

“ip.me”是一个 IP 地址反射器网站,它返回请求的有效公共 IP 地址。在这种情况下,它返回 ECS/squid 实例的公网 IP 地址,即 .47.254.84.24

要解决 squid 问题,请运行“systemctl status squid”并选中 /var/log/squid/access.log和 /var/log/squid/cache.log。

步骤 2:创建和配置全局加速器实例

2.1 启动 GA 实例

转到 GA 控制台。单击“创建实例”。根据屏幕截图后面的表选择规格。

以下是可供选择的 GA 实例类型的列表:

2.2 购买基本带宽包

单击“购买基本带宽计划”选项卡,指定峰值带宽(例如10Mbps),然后完成订单。

2.3 购买跨地域加速带宽包

此解决方案需要跨区域加速带宽包。带宽应与基本带宽计划匹配。

单击“购买跨境加速带宽包”选项卡,完成订单。

2.4 将跨地域加速带宽包绑定到GA实例:

在带宽页面,单击跨境带宽包的“绑定实例”链接。选择要绑定到的 GA 实例。

2.5 添加加速区域

在实例页面,单击“加速区域”选项卡,然后单击“添加加速区域”。选择“华东”区域、上海区域。将所有10Mbps分配给它。单击“确定”继续。

完成此步骤需要一些时间。完成后,将分配上海区域的加速 IP 地址。记下它,以便以后进行验证和 PAC 文件。

2.6 将侦听器添加到 GA 实例

在实例页面,单击“监听”页签,单击“添加监听”以配置监听器和协议。选择 TCP 协议和端口 3128。

接下来,使用一个终端节点配置终端节点组:

  • 地区: 美国(硅谷)
  • 后端服务:阿里云
  • 后端服务类型:阿里云公有IP地址
  • 后端服务:ECS/squid 实例的公网IP地址,例如47.254.84.24

确认并等待配置完成。

2.7 验证 GA 配置

与 1.7 类似,使用 curl 但对于“-x”选项,请将 ECS/squid 的公网 IP 地址替换为 2.5 中配置的 GA 加速 IP 地址:

curl -x 47.101.144.164:3128 -U sfuser:<password> ip.me

替换为 1.5 中设置的实际密码。<password>

配置正确后,返回的IP地址将是ECS/squid的公网IP地址,即47.254.84.24

步骤 3:客户端配置

客户端浏览器需要一个 PAC 文件来帮助确定何时使用代理以及何时不使用代理。这对于确保客户端浏览器不会向 GA 实例发送在中国公开阻止的域名请求也很重要。

3.1 创建 PAC 文件

将以下内容保存到一个文件中,例如“sfproxy.pac”。

function FindProxyForURL(url, host) {

if (dnsDomainIs(host, 'ip.me') ||

dnsDomainIs(host, 'salesforce.com') ||

dnsDomainIs(host, '.salesforce.com') ||

dnsDomainIs(host, '.force.com') ||

dnsDomainIs(host, '.sfdcstatic.com'))

return 'PROXY 47.101.144.164:3128';

else

return 'DIRECT';

}

请注意以下事项:

  • 替换函数调用中的域名,以匹配 1.6 中的 squid dstdomain 配置。根据需要添加或删除呼叫。dnsDomainIs dnsDomainIs
  • 将 PROXY IP 地址替换为 2.5 中配置的 GA 加速 IP 地址。
  • 或者,GA 提供了一个 CNAME,可以用作 PROXY 地址,例如 ,但需要一次额外的 DNS 查找。PROXY ga-bp10hvy2c21indkgtmyg8.aliyunga0017.com:3128

3.2 在OSS中托管PAC文件

PAC 文件需要托管在可公开读取的位置,最好是中国大陆。我们建议在中国区域使用阿里云 OSS 存储桶。

  • 进入 OSS 控制台
  • 在中国(上海)区域创建存储桶。
  • 将 3.1 中创建的 PAC 文件上传到存储桶,将文件 ACL 更改为“公用读取”。
  • 单击新上传的文件以获取 URL,例如 https://pac-bucket.oss-cn-shanghai.aliyuncs.com/sfproxy.pac
  • 验证 URL 是否可通过浏览器访问。

有关使用OSS的更多信息,请参阅OSS快速入门指南

3.3 配置客户端浏览器以使用 PAC 文件

使用 OSS 网址配置客户端代理设置:

  • 视窗: https://findproxyforurl.ackor.net/deploying-pac.html
  • macOS: https://support.apple.com/guide/mac-help/enter-proxy-server-settings-on-mac-mchlp2591/mac
  • iOS: https://findproxyforurl.ackor.net/apple-ios.html
  • 安卓: https://support.google.com/android/answer/9654714?hl=en

配置完成后,在浏览器中访问 https://ip.me。出现提示时,提供在 1.5 中配置的用户名和密码。返回的页面应显示 ECS/squid 实例的公网 IP 地址,与 1.7 和 2.6 中的 IP 地址相同。

祝贺!实施现已成功完成。

上一篇
速度、可靠性和全球影响力:阿里云国际如何选择合适的 CDN
下一篇
87cloud案例分析:阿里云国际服务器如何支持在线教育
立即咨询 享受更轻松快捷的上云服务
联系我们
联系我们
Skype:87Cloud Alibaba
E-mail:the87cloud@outlook.com
最新活动
合作流程
解决方案
代理合作
关于我们
87Cloud Alibaba
the87cloud@outlook.com
阿里云国际
最新优惠
立即加入
电报交谈
Skype
企业邮箱
返回首页
回到顶部