HTTP代理的组成架构和使用方法

作者:IPIDEA

2021-01-28 16:55:16

代理服务器也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。一般有两种使用方法。

 

第一种情况:直接运用。

打开internet选项,在局域网设置中勾选代理服务器"为LAN运用代理服务器",填入IP地址和对应端口号,保存后改写浏览器IP就变了。这种适合效果补量业务。

 

第二种情况:网络爬虫。

网络爬虫若想在短时间内收集到许多数据信息,需求合作运用代理IP,允许访问公开数据访问。网络爬虫一般是程序化接入,运用API直接对接。使用http这种方法便捷而且IP资源的质量也比较好,比如IPIDEA覆盖全球220+地区ip,并稳定,能够满足大量的需求,安全性也可以得到保障。


 1.154.png


现在的网络爬虫中,已经形成了4种基本的模式。如果已经编写了用于生成动态内容的网络爬虫Python代码,并且已经选择了某个支持WSGI的API或框架,应该如何将HTTP服务部署到线上呢?IPIDEA介绍下HTTP代理服务器的四种架构。

 

第一步、运行一个使用网络爬虫Python编写的服务器,服务器的代码中可以直接调用WSGI接口。现在流行的是Green Unicorn服务器,不过也有其他已经可以用于生产环境的纯Python服务器。

 

第二步、配置mod_wsgi并运行Apache,在一个独立的WSFIDaemonProcess中运行Python代码,由mod_wsgi启动守护进程。

 

第三步、在后端运行一个类似于Gunicorn的Python HTTP服务器(或者支持所选异步框架的任何服务器),然后在前端运行一个既能返回静态文件,又能对Python编写的动态资源服务进行反向代理的Web服务器。

 

第四步、在前端运行一个纯粹的反向代理(如Varnish),在该反向代理后端运行Apache或者nginx,在后端运行Python编写的HTTP服务器。这是一个三层的架构。这些反向代理可以分布在不同的全球任意国家地区,这样子就能够将离客户端近的反向代理上的缓存资源返回给发送请求的客户端。

 

长期以来,对这4个架构的选择主要基于CPython的3个运行时的特性,即解释器占用内存大、解释器运行慢、全局解释器判断IP属性,无法高效采集公开数据多个线程同时运行Python字节码。但同时带来了内存中只能载入一定数量的Python实例。

 


*ipidea提供的服务必须在境外网络环境下使用

热门资讯