NodeJS中配置请求代理服务器

简介: 某天不知道谁在刷我的接口,导致被拉黑了。大佬让我换个机器重新装一下,但是因为我的里面用到了一个图片处理库 sharp 装起来很烦,然后就研究研究能不能搞个代理服务器。大体是如上图,用户的请求最后都会通过我的服务器去请求对方服务器,这就导致频率一高就被封。那么我可以请求代理服务器,甚至是做一个代理池,再把请求平均开。既然方案定下来了,那么我们就要开始测试了。先找找自己怎么做,然后看看有没有现成的服务。

bVbEvg8.webp.jpg


代理服务器



squid


squid 是应用层的代理服务软件,它可以提供缓存加速、应用层过滤的功能。


我的服务器就可以理解为客户机,通过代理服务器请求对方服务器。可以达到两个目的

  1. 缓存一部分请求,防止同一地址,短时间内大量请求。


  1. 隐藏客户机ip


bVbEvjQ.webp.jpg


阿布云


阿布云就是一个做代理的服务提供商,HTTP隧道可以让每个请求从一个随机 IP 转发(秒级5个,最高200个,超过会429)。


Node中如何配置代理服务器



axios


使用axios的话,Node中支持 proxy 参数,参照文档完成即可。


const axios = require('axios');
// 要访问的目标页面
var targetUrl = "https://www.lilnong.top/cors/sf";
// 配置代理服务器信息
var proxy = {
    host: "8.8.8.8", //代理服务器地址
    port: 80,//端口
    auth: { // auth认证信息,阿布云那边有,squid 的话不需要
        username: '',password: ''
    }
};
// https://github.com/axios/axios#request-config
axios.get(targetUrl,{proxy:proxy})
    .then((response) => console.log(response.data))
    .catch((error) => console.log(error))


axios 异常情况


axios配置代理服务器后无法请求https地址如何解决?


首先我们先确定两种情况

  1. http 可以正常请求
  2. https 返回501


这个问题是因为axios支持导致的,有两个解决办法。


  1. 使用 axios-https-proxy-fix 版本来代替 axios。
    https://www.npmjs.com/package...


  1. 使用 tunnel 隧道来处理。


axios('https://www.lilnong.top/cors/sf2',{
         proxy: false,
         httpsAgent: tunnel.httpsOverHttp({proxy:{
             host: '8.8.8.8',//代理服务器域名或者ip
             port: 80 //代理服务器端口
         }})
     })
     .then(v=>console.log(JSON.stringify(v.data)))
     .catch(v=>console.log(v.message))


request


如果我们使用的不是 axios,而且 request 库的话,也是可以的。


request({
    url:'https://www.lilnong.top/cors/sf3',
    proxy: 'http://8.8.8.8:80'//代理服务器地址 
    // "http://" + proxyUser + ":" + proxyPass + "@" + proxyHost + ":" + proxyPort;
}, function (error, response, body) {
    console.log('body:', body);
});


request 异常情况


npm install request 装不上


request has been deprecated, see https://github.com/request/request/issues/3142

因为 request 不会在开发新的功能了,不推荐再使用了。


也因为用的人实在太多了,需要考虑的兼容太多,所以整个库转为了维护。


这个时候我们可以试试用 cnpm install request 来装


其他测试请求代理服务器的方法



curl


使用 curl 我们可以在服务器上很快的看到代理服务器是否好使。


curl -x "http://8.8.8.8:80" https://www.lilnong.top/cors/sf4


-x 是设置代理服务器地址, x 是小写哦。别写错,大写的是设置请求方式 -X POST

相关文章
|
3月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
748 1
|
3月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
229 11
|
3月前
|
存储 弹性计算 网络协议
超详细的阿里云服务器购买流程,ECS自定义购买配置教程
本文详细图解阿里云ECS服务器自定义购买全流程,涵盖付费模式、地域选择、网络配置、实例规格、镜像、存储、安全组及登录设置等核心步骤,助您轻松掌握专业级云服务器搭建方法。
|
3月前
|
存储 弹性计算 监控
阿里云渠道商:如何挑选阿里云服务器配置?
本文详解通用型、计算型、内存型等实例适用场景,结合性能评估与成本优化策略,助力用户按需选择。以日均1万访问企业网站为例,2核4G+3M带宽月费约200元,性价比高。合理配置更省钱。
|
3月前
|
弹性计算
阿里云ECS云服务器8核16G配置收费价格,多种ECS实例CPU及费用清单
阿里云8核16G云服务器价格因实例类型而异。计算型c9i约743元/月,一年6450元(7折);通用算力型u1仅673元/月,一年4225元(5.1折)。实际价格享时长折扣,详情见ECS官网。
|
6月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
1549 11
|
11月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
958 155