反向代理Cloudflare加速网站(SNIproxy)

更新日期: 2019-02-28阅读: 4.3k标签: 代理


写在教程前:为什么要反向代理cloudflare?答:缩短路由,加快cloudflare节点到大陆用户的速度,用过cloudflare的用户应该知道,这家CDN的速度在除了大陆以外的地方访问都非常快,那么又没有什么办法使其对大陆访问良好呢?

该操作适用环境:

①不想暴露源站,但是国内搜索引擎对cf节点抓取速度慢

②没被攻击前使用自建反代加快访问,宕机后迅速切换为cf官方节点(dnspod)

③没有使用NS接入而是CNAME

④有一台对国内访问快且访问Cloudflare也很快的服务器(如 PCCW、HKBN、TW中华电信、 bbtec)

反代程序有很多种,但是在这里我选用了SNI Proxy,为什么?因为Nginx等传统反代需要自行配置https证书,且无法如果CDN设置了强制https或重写https国内,将会出现跳转错误。


开始安装SNI Proxy,基本环境安装:

yum -y install tar wget &&   yum -y groupinstall "Development tools" &&   yum -y install pcre-devel pcre

安装辅助包libev4:

wget http://dist.schmorp.de/libev/Attic/libev-4.25.tar.gz && tar zxvf libev-4.25.tar.gz && cd libev-4.25 && ./configure -prefix=/usr/local/libev4 &&  make &&  make install

安装辅助包udns:

wget http://archive.ubuntu.com/ubuntu/pool/universe/u/udns/udns_0.4.orig.tar.gz  && tar zxvf udns_0.4.orig.tar.gz  && cd udns-0.4  && ./configure  &&  make
cd .. 
mv udns-0.4 /usr/local/udns

安装sniproxy:

wget https://down.cangshui.net/-mytargz/sniproxy.tar.gz && tar -zxvf sniproxy.tar.gz && sudo chmod -R 777 sniproxy && cd sniproxy
export CFLAGS='-I/usr/local/libev4/include -I/usr/local/udns' && export LDFLAGS='-L/usr/local/libev4/lib -L/usr/local/udns' && export LD_LIBRARY_PATH=/usr/local/libev4/lib:$LD_LIBRARY_PATH
./autogen.sh
./configure -prefix=/root
make
make install

这样sniproxy就装到了/root/sbin/sniproxy,建立一个配置文件: vi /etc/sniproxy.conf 把一下内容编辑进去:

user nobody
resolver {
nameserver 1.1.1.1 #指定NDS
mode ipv4_only #只解析IPV4
}
listen 80 {
proto http
table http_hosts
access_log { 
  filename /var/log/http_access.log   
  priority notice
     }
}
table http_hosts {
(.*.|)cangshui.net$ *#只允许自己的域名,改成自己的
}
listen 443 {
proto tls
table https_hosts
access_log { 
  filename /var/log/https_access.log   
  priority notice
     }
}
table https_hosts {
(.*.|)cangshui.net$ *#只允许自己的域名,改成自己的
}

启动SNIproxy:

/root/sbin/sniproxy -c /etc/sniproxy.conf

检查是否成功启动:

ps -ef | grep sniproxy

PS。记得iptables开放443/80端口:

iptables -I INPUT -p tcp --dport 443 -j ACCEPT 
iptables -I INPUT -p tcp --dport 80 -j ACCEPT

如何测试?本地修改HOST文件,windows端打开:

C:\Windows\System32\drivers\etc\hosts

然后写上:

你的反代服务器IP 你的域名
如:
68.68.68.68 lhzj.site

测试成功的话就可以解析到这个IP上了

需要注意的是:每次重启机器之后直接启动程序会报错

error while loading shared libraries: libev.so.4: cannot open shared object file: No such file or directory

你需要先执行

export LD_LIBRARY_PATH=/usr/local/libev4/lib:$LD_LIBRARY_PATH

然后再启动软件


链接: https://www.fly63.com/article/detial/2158

什么是在线代理ip网页代理

当我们需要大量IP进行快节奏完成业绩的时候,很多人都会想到去IP代理服务商那里购买IP代理,所以我相信很多人对于IP代理这个词已经有一定的认识了,那么还有一个词叫做:在线代理ip网页代理

centos7下搭建高匿HTTP代理

一般适用情况:1、两台都有外网IP,一台服务器请求资源通过另外一个服务器,本文重点讲第一种。2、两台服务器,其中一台服务器只有内网IP,另外一台服务器有公网和内网IP。

.Net Core/Framework之Nginx反向代理后获取客户端IP等数据探索

公司项目最近出现获取访问域名、端口、IP错误现象,通过排查发现, 之前项目一直通过Nginx自定义Headers信息来获取,但最近运维人员失误操作造成自定义Header信息丢失,造成项目拿不到对应的数据。

反向代理和内网穿透

反向代理看上去看深奥,其实不然,只是因为汉语言文化的差异导致它看上去深奥。一般反派感觉都比较厉害和神秘。要理解反向代理,我们就不得不说一下正向代理。正向代理代理的对象是客户端;反向代理代理的对象是服务端

ES6中的代理(Proxy)和反射(Reflection)

调用 new Proxy() 可常见代替其它目标 (target) 对象的代理,它虚拟化了目标,所以二者看起来功能一致。代理可拦截JS引擎内部目标的底层对象操作,这些底层操作被拦截后会触发响应特定操作的陷阱函数。

Vue多环境代理配置

多人协作模式下,修改代理比较麻烦,而且很容易某个开发人员会修改了vue.config.js文件后提交了。第一,很容易引起冲突。 第二,很容易出现代理错误,需要排查。而且现在微服务盛行

node.js代理访问

本地开发,代理访问,防止跨域(一般通过webpack配置代理即可),特殊情况如携带一些自定义的登录cookie则需要通过自己写node,作为一种server中间层,单线程异步可以缓解服务器压力

vue proxy代理跨域

changeOrigin的属性值为一个布尔值,如果设置为true,那么本地会虚拟一个NODE服务端接收你的请求并代你发送该请求(中间件)。[本质上是本地开了一个服务器dev-server,所有的请求都通过这里转发出去。]

Nginx反向代理之动静分离

我们已经知道了什么是正向代理与反向代理,这次我们就讲一下Nginx的动静分离的案例,其实质运用的就是反向代理,专门用一台服务器代理服务器上的图片资源。

如何使用Proxy 来代理Js中的类?

Proxy 对象(Proxy)是 ES6 的一个非常酷却鲜为人知的特性。虽然这个特性存在已久,但是我还是想在本文中对其稍作解释,并用一个例子说明一下它的用法。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!