一、一般适用情况
1、两台都有外网IP,一台服务器请求资源通过另外一个服务器,本文重点讲第一种。
2、两台服务器,其中一台服务器只有内网IP,另外一台服务器有公网和内网IP。
二、前提
# 确认服务器端ip_forward转发开启
echo 1 > /proc/sys/net/ipv4/ip_forward
ip_forward需要设定为1
sysctl -a |grep -w ip_forward
net.ipv4.ip_forward = 1
客户端配置
export https_proxy=http://服务端内网ip:3128
三、下载
centos
yum install squid
ubuntu
sudo apt-get install squid3
修改配置文件
vim /etc/squid/squid.conf #修改配置文件
#允许的客户端ip
acl allcomputers src 0.0.0.0/0.0.0.0
#配置用户名密码,后面会生成passwords文件
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated allcomputer
找到http_access deny all并注释掉
#http_access deny all
最好修改一下默认的3128端口,因为这个端口是默认的,很容易被网络上的代理爬虫探测到。
http_port 8828
用户名密码认证(如果没有htpasswd命令需要下载)
网络上有很多专门爬免认证的代理的爬虫,如果我们自己搭建的代理服务器不加认证的话,会被这些爬虫探测到然后沦为了免费代理。
使用htpasswd来创建passwords文件,htpasswd命令在软件包apache2-utils中
sudo htpasswd -c -d /etc/squid3/passwords 自定义用户名
sudo chmod o+r /etc/squid3/passwords
#centos7
systemctl restart squid.service
#centos6
sudo service squid3 start
或者
etc/init.d/squid start
加入全局环境变量 将我们的代理配置上:
vim /etc/profile #(注意备份)
#export http_proxy="http://用户名:密码@代理IP:代理端口"
export http_proxy="http://xxxx:xxxxxxxx@172.21.0.14:8888"
#在客户端验证
curl -l "http://www.baidu.com"
#在服务端查看日志
squid3的访问日志文件在/var/log/squid3/access.log
tail -f /var/log/squid3/access.log
[root@VM_0_14_centos ~]# tailf /var/log/squid/access.log
1546068808.417 174 172.21.0.10 TCP_MISS/502 4163 GET http://www.abc.com/ - HIER_DIRECT/199.181.132.250 text/html
1546068810.082 11 172.21.0.10 TCP_MISS/502 4163 GET http://www.abc.com/ - HIER_DIRECT/199.181.132.250 text/html
来自:https://www.cnblogs.com/zhaojingyu/p/10197411.html
当我们需要大量IP进行快节奏完成业绩的时候,很多人都会想到去IP代理服务商那里购买IP代理,所以我相信很多人对于IP代理这个词已经有一定的认识了,那么还有一个词叫做:在线代理ip网页代理
公司项目最近出现获取访问域名、端口、IP错误现象,通过排查发现, 之前项目一直通过Nginx自定义Headers信息来获取,但最近运维人员失误操作造成自定义Header信息丢失,造成项目拿不到对应的数据。
反向代理看上去看深奥,其实不然,只是因为汉语言文化的差异导致它看上去深奥。一般反派感觉都比较厉害和神秘。要理解反向代理,我们就不得不说一下正向代理。正向代理代理的对象是客户端;反向代理代理的对象是服务端
写在教程前:为什么要反向代理cloudflare?答:缩短路由,加快cloudflare节点到大陆用户的速度,用过cloudflare的用户应该知道,这家CDN的速度在除了大陆以外的地方访问都非常快,那么又没有什么办法使其对大陆访问良好呢?
调用 new Proxy() 可常见代替其它目标 (target) 对象的代理,它虚拟化了目标,所以二者看起来功能一致。代理可拦截JS引擎内部目标的底层对象操作,这些底层操作被拦截后会触发响应特定操作的陷阱函数。
多人协作模式下,修改代理比较麻烦,而且很容易某个开发人员会修改了vue.config.js文件后提交了。第一,很容易引起冲突。 第二,很容易出现代理错误,需要排查。而且现在微服务盛行
本地开发,代理访问,防止跨域(一般通过webpack配置代理即可),特殊情况如携带一些自定义的登录cookie则需要通过自己写node,作为一种server中间层,单线程异步可以缓解服务器压力
changeOrigin的属性值为一个布尔值,如果设置为true,那么本地会虚拟一个NODE服务端接收你的请求并代你发送该请求(中间件)。[本质上是本地开了一个服务器dev-server,所有的请求都通过这里转发出去。]
我们已经知道了什么是正向代理与反向代理,这次我们就讲一下Nginx的动静分离的案例,其实质运用的就是反向代理,专门用一台服务器代理服务器上的图片资源。
Proxy 对象(Proxy)是 ES6 的一个非常酷却鲜为人知的特性。虽然这个特性存在已久,但是我还是想在本文中对其稍作解释,并用一个例子说明一下它的用法。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!