2013年7月12日星期五

搭建 Spdy SSL Proxy (二)

搭建 Spdy SSL Proxy. 这里我主要介绍一下我的尝试, Shrpx + Squid3 实现的 Spdy SSL Proxy 代理. 下面是一个架构图.

先介绍一下 Shrpx , 它是 spdylay 项目中的一个组件. spdylay 是一个用 C 语言实现 SPDY 协议的库. 点击这里查看spdylay github 地址 .在 spdylay 库之上有 spdycat:一个支持 spdy 协议的命令行客户端, 类似于 wget.  spdyd: 一个spdy 协议完全实现的 web server. 另外一个 Shrpx: 一个支持 spdy 协议的 reverse proxy server. Shrpx 是 Spdy/Https reverse proxy 的一个简称.

针对上面的图来说:为 chrome 设置 ssl 代理地址和端口后, 其通过 spdy/https 加密的方式连接到 Shrpx 服务器, 并将访问请求发给 Shrpx , Shrpx 将收到的请求再转发给端的 proxy 代理(在这里使用的是 squid3), 然后由后端 proxy 获取请求的内容后再由 Shrpx 通过加密通道返回给 chrome客户端.

我进行测试的环境: 256m ubuntu 12.04  美国 vps 一枚. 首先编译安装 Shrpx, 安装和配置过程很简单.可以参考spdylay github 的说明.下面给出我的 Shrpx 配置文件 shrpx.conf:

frontend=123.456.789.123:456
backend=127.0.0.1:8000
private-key-file=/etc/shrpx/ssl.key
certificate-file=/etc/shrpx/ssl.crt
spdy-proxy=yes
daemon=yes
accesslog=yes
workers=2

配置文件很简单, frontend 就是你要设置的代理的地址和端口, backend 是后端代理工作的ip 和端口.  另外因为 spyd 需要 ssl 加密, 所以必须要设置证书和key, 这里你可以自己签发证书, 当然在使用的时候, 浏览器会发出警告的,你必须忽略警告,并将你所自签发的证书加入浏览器的信任列表才可以正常使用.  关于如何自签发ssl加密证书点这里. 另外配置文件里 spdy-proxy=yes 这个一定要有,否则你的 spdy proxy 只是个反向代理. 无法将请求转发给后端 squid.

配置完成后 shrpx 后, 通过 /shrpx --conf /etc/shrpx.conf 就可以启动 shrpx. 如何验是否成功的运行了呢. 这里需要安装一个 chrome 的扩展程序. spdy-indicator 它可以显示所浏览的网站是否支持 spdy 协议. 在浏览器里打开你说配置的 shrpx 的frontend 的ip 和端口, 如果在浏览器你的地址栏的最右侧看到一个绿色的小闪电标志,那就表明你的 shrpx 配置成功了.

关于后端代理 squid 的安装配置就更简单,直接 apt-get install squid3 就安装好了. 对于配置文件的修改, 主要是端口和监听 ip 的修改. 在 /etc/squid3/squid.conf 里面修改 http_port 这项为 127.0.0.1:8000 就可以了.  然后重启 squid.

下面的就是要测试我们的 spdy ssl proxy 是否成功了: 新建一个 chrome 的快捷方式, 然后右键属性, 在"目标" 这行里添加上你的代理的地址和端口:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --proxy-server=https://xxx.xxx.xxx.xxx:xxx

改完后保存, 然后双击打开 chrome, 然后在地址栏里面输入 twiter.com  试一下, 看看是否翻墙成功.

没有评论:

发表评论