1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Windows上使用Apache24搭建代理IP服务器 动图图解(腾讯云服务器/Windows Server R2) # 谭子

Windows上使用Apache24搭建代理IP服务器 动图图解(腾讯云服务器/Windows Server R2) # 谭子

时间:2023-03-14 02:04:51

相关推荐

Windows上使用Apache24搭建代理IP服务器 动图图解(腾讯云服务器/Windows Server  R2) # 谭子

事由

前段时间搞爬虫项目,为了避免本地IP给锁掉,尝试了使用代理池,但貌似免费代理IP很多用不了,就很尴尬。刚好手头有一台云服务器,计划着搭建个代理IP,以便于在python中的requests库中使用proxies代理IP访问。正常的Python requests爬虫语法结构大致如下:

import requestsresponse=requests.get("",proxies={"http://IP地址:端口号"})print(response.status_code)// 查看响应状态

proxies这个参数是可以省略的(默认使用本地IP去访问网站),也就说,搭建好的代理IP或者代理池IP都可以添加到proxies参数中,将模拟使用该IP访问所需要爬取的网站,避免本地IP因访问过多而泄露隐私或被封锁IP。

Windows系统上常用的代理服务器搭建工具有Apache和ccproxy,前者是免费的,后者付费但有图形化界面。这里只做Apache24的代理IP搭建。(ccproxy我没能跑起来啊啊啊)因为IP隐私问题,我将使用虚拟机来复刻一遍搭建的过程,使用到的系统镜像是Windows Server R2。(镜像分享-百度云盘)

一、下载Apache24

阿帕奇官网可以下载到所需要的版本(Apache官网),打开该网址后,选择网页左上角的“Download!”;打开新页面后找到“Files for Microsoft Windows”;点击进入到“Downloading Apache for Windows”中选择“ApacheHaus”;在“Apache 2.4 Server Binaries”列表下找到自己心仪的版本,再点击版本号对应的“Dowload Locations”下的图标:,浏览器就会自动匹配合适的Apache配置文件压缩包。(本段落中蓝字部分可以直接跳转到对应页面的,但还是建议一步一步来,需要匹配系统识别)图示如下:

二、配置环境

接下来就是最关键的配置问题,涉及到防火墙、阿帕奇配置文件的修改及端口号开放问题。

1.解压文件包

先把上一步下载好的zip压缩包内的文件解压到自己喜欢的位置,我这里是直接放在桌面了,只要能记得住Apache24这个文件夹位置就行。

2.关闭防火墙

打开Windows系统下的cmd命令行,输入“net stop mpssvc”再回车,关闭防火墙后,输入“ipconfig”查看本机的IPv4地址,记下来就行。

3.修改httpd.conf

在Apache24文件夹下打开conf文件夹,就能找到httpd.conf这个配置文件了。通过修改该文件内的内容来实现代理IP的搭建。

鼠标右键httpd.conf ,打开方式,用记事本编辑。

修改 Define SRVROOT " " 内容,在双引号内加入Apache24文件夹路径(路径用的斜杠号是"/"而不是"\");Listen加上IPv4地址和8088端口作为代理开放代理(如192.168.121.140:8088);手动删除配置文件前的#号,启动代理服务的so文件(proxy相关服务和mod_slotmem_shm.so);在文件末尾添加以下内容:

ProxyRequests On

<Proxy *>

Require all granted

</Proxy>

AllowCONNECT 8080 808

具体内容:

三、启动代理服务

打开cmd后cd进入到Apache24 目录下的bin,启动httpd.exe,第一次使用这个文件需要输入“httpd.exe -k install”。

cd C:\User\Administrator\Desktop\Apache24\bin

(httpd.exe -k install)

httpd.exe -k start

正常出现上图这样,小卡一下然后跳下一行,就是代理服务已经启动好了。如果要关闭代理IP,可以用“httpd.exe -k stop”,如下图:

接下来就可以,使用该IP地址所绑定的代理端口,尝试进行网络爬虫。

四、爬虫实践-代理IP效果

简单访问一下百度,看看能不能返回状态码。Python的代码(requests库)如下:

import requestsdef load_page(url):headers = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0;""Windows NT 6.1; Trident / 5.0;"}proxy_list = [{'http': 'http://175.178.223.138:8088'}]# 使用代理服务器发送GET请求,接收服务器返回的响应# response = requests.get(url, headers=headers)# return response.textfor per_ip in proxy_list.copy():try:response = requests.get(url, headers=headers, proxies=per_ip, timeout=5)except:print(f"IP地址:{per_ip['http']}无效")proxy_list.remove(per_ip)else:print(f"IP地址:{per_ip['http']}有效") # 若IP有效则返回状态码print("状态码为:" + str(response.status_code))if __name__ == "__main__":base_url = ''load_page(base_url)

PS:httpd.exe -k install出现丢失VCRUNTIME140.dll问题

在执行安装httpd.exe命令有可能会显示下图缺组件(vc运行库)的情况:

这个并不好处理,需要直接进微软的C++文档下载对应的C++库,个人推荐的Windows Server R2 VC下载链接:Visual Studio x64,同时需要打开Windows更新(控制面版-系统和安全-Windows更新)和.Framework。(仅供参考,因为我的虚拟机也出现这种情况,但云服务器没有,跑去下载后发现还是安装不了)

所以,有更好的解决方法,直接去下载一个vcruntime.dll,放在Windows系统中的C:\Windows\SysWOW64中,再运行一次httpd.exe -k install。如果又出现了缺某某某.dll的情况且下载不到的情况下,可以使用360管家中的dll修复。当然,可以把别人能用的一整个SysWOW64文件夹拷贝过去替换掉本地的SysWOW64(我的虚拟机遇到这个问题就是这样解决的。。。)SysWOW64文件夹分享-百度云盘(里面也有我用的vcruntime.dll)

-- THE END --

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。