You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为EC2 Web服务器实例配置代理实现外部API请求转发

方案合理性验证

你选择的Squid作为正向代理的方案是完全可行的,适配你当前的需求场景,额外还能带来三个优势:

  • 统一出口IP,外部API侧仅需要加白代理服务器的公网IP即可,无需调整Web服务侧的IP规则
  • 可实现访问管控,限制Web服务仅能访问指定的外部API域名/IP,降低安全风险
  • 自带请求日志审计能力,后续排查外部API调用异常问题更方便
具体配置步骤

Squid代理服务器侧配置

  • 修改Squid核心配置文件,默认路径为/etc/squid/squid.conf
    • 首先添加Web服务EC2的访问权限:acl webserver src <你的Web服务EC2的IP地址/32>
    • 放行该来源的请求:http_access allow webserver
    • 如需限制仅能访问指定外部API,可补充规则:acl allowed_api dstdomain .your-target-api.com(替换为实际API域名),再把上面的放行规则修改为http_access allow webserver allowed_api
    • 监听端口默认是3128,可修改http_port 3128行自定义端口
    • 如需隐藏Web服务的真实IP,可补充两行配置:forwarded_for off、request_header_access X-Forwarded-For deny all
  • 配置完成后校验语法合法性:squid -k parse,校验通过后重启服务生效:systemctl restart squid,同时设置开机自启:systemctl enable squid
  • 调整Squid实例的安全组规则:入方向放开3128端口,源地址仅填写Web服务EC2的IP,禁止放开0.0.0.0/0避免代理被恶意滥用

Web服务EC2侧配置

根据实际需求选择全局代理或者单应用代理即可:

场景1:全局系统代理(所有对外请求都走代理)

  • 编辑系统环境变量配置文件/etc/profile,添加如下内容:
export http_proxy=http://<Squid代理EC2的IP>:3128
export https_proxy=http://<Squid代理EC2的IP>:3128
export no_proxy=localhost,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
  • 执行source /etc/profile让配置生效,可通过curl 你的外部API地址测试连通性,也可以查看Squid侧/var/log/squid/access.log确认请求是否正常中转

场景2:仅Web应用走代理(无需全局生效)

不用修改系统配置,直接在Web应用代码中指定代理即可,不同语言参考配置:

  • Node.js(axios)
const axios = require('axios');
const HttpsProxyAgent = require('https-proxy-agent');
const agent = new HttpsProxyAgent('http://<Squid代理IP>:3128');
axios.get('https://你的API地址', { httpsAgent: agent });
  • Python(requests)
import requests
proxies = {
  'http': 'http://<Squid代理IP>:3128',
  'https': 'http://<Squid代理IP>:3128',
}
requests.get('https://你的API地址', proxies=proxies)
  • Java:启动时添加JVM参数
-Dhttp.proxyHost=<Squid代理IP> -Dhttp.proxyPort=3128 -Dhttps.proxyHost=<Squid代理IP> -Dhttps.proxyPort=3128
优化建议
  • 给Squid实例绑定弹性公网IP,避免实例重启后公网IP变动,导致外部API白名单失效
  • 定期清理Squid访问日志避免磁盘占满,也可以将日志投递到统一日志服务做长期留存分析
  • 可用性要求高的场景可以部署多台Squid实例,前端挂载内网负载均衡,Web服务侧代理地址指向负载均衡地址,避免单台Squid故障导致业务中断
  • 若传输敏感数据,可配置Squid的HTTPS代理,加密Web服务到Squid之间的传输链路

内容的提问来源于stack exchange,提问作者ConorIsAMelon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:54:03