IT技术博客大学习 共学习 共进步

移动端测试的代理服务器搭建

雨夜带刀 2016-04-02 13:16:32 浏览 1,941 次

背景

   移动设备想要访问位于局域网中的某个特定设备上搭建的服务,需要通过代理服务器来实现,针对不同操作系统搭建代理服务器有不同的软件,如果系统是 OS X 的话,可以使用 Charles,对于 Windows,可以使用大名鼎鼎的 Fiddler ,可视化软件的使用这里不详述,本文重点讲述在 Unix/Linux 上使用 Squid 来搭建代理服务器。

本地环境的准备

   通常我们需要测试的是某个设备上搭建的本地服务,那么至少要保证使用 127.0.0.1 是可以访问的,如果是配置了域名的虚拟主机也是同理,至少需要确保本地绑定 Hosts 可访问。

   假如你的设备上有一个正在运行的 a.com,那么需要保证可以在设备上通过绑定 127.0.0.1 a.com 的 hosts 能正常访问到该服务。

安装 Squid

   以 Cent OS 为例,可以使用 yum 来安装。

$ yum install squid

   其他 linux 系统有不同的软件来安装,否则可以选择编译的办法来安装。

配置 Squid

   使用 yum 安装好的 Squid,默认的目录会是 /usr/local/squid,默认的配置文件是 /usr/local/squid/etc/squid.conf

   编辑配置文件:

$ vim /usr/local/squid/etc/squid.conf

   这里重点讲述几个重要的配置。

   先增加一个本地 server 的 acl 访问规则的配置,然后配置本地 server 不做缓存,因为 Squid 默认会对所有访问请求做缓存,而本地测试服务不需要借助 Squid 来做缓存控制。

acl localServers dst 127.0.0.1  # Local Server
no_cache deny localServers   # Deny local server cache

   当 Squid 找不到本地所运行的主机名时可能会报如下错误:

FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'

   所以最好提前设置一个可见主机名,以免发生错误,该可见主机名可以在本地单独配置一个 xxx.com 的虚拟主机(记得绑定 hosts)而专用于 Squid。

visible_hostname xxx.com

   配置允许所有 HTTP 的访问

http_access allow all

   配置代理端口,默认端口是 3128,可以修改成你想要的任意端口。

http_port 8411

   配置 log 文件路径,cache.log 和 access.log,并确保该文件有可写权限。

cache_log /var/log/squid/cache.log
cache_access_log /var/log/squid/access.log

   到这里主要的配置都完成了,可以启动 Squid 了。

$ /usr/local/squid/sbin/squid

   如果修改了配置文件,需要停止 Squid 然后再启动,安全的办法是使用自带的命令。

$ /usr/local/squid/sbin/squid -k shutdown

   由于 Squid 的 access.log 会记录每一条访问日志,一定时间后该日至会非常庞大,所以需要定时清理,可以设置一个定制任务来清理该文件。

   使用 crontab 来增加一条定时任务。

$ crontab -e

   在打开的文件中新增一条记录,这条记录会每天 0 点的时候将访问日志清空。

0 0 * * * /usr/local/squid/sbin/squid -k shutdown
3 0 * * * echo > /var/log/squid/access.log
5 0 * * * /usr/local/squid/sbin/squid

   如果你觉得这种办法太简单粗暴,可以使用 Squid 自带的滚动日至的功能。

$ /usr/local/squid/sbin/squid -k rotate

   Squid 是一个很强大的开源软件,可以用于搭建代理服务器,还可以作为大型站点的 WEB 加速器,想更详细的了解可以查看 Squid 权威指南

移动设备如何访问代理服务器?

   代理服务器搭建好后,移动端设备想要访问代理服务器,在 Wifi 的 HTTP 代理设置中填入代理服务器的 IP 和 Squid 配置的代理端口,就可以正常访问代理服务器上的 a.com

建议继续学习

  1. Xvfb+YSlow+ShowSlow搭建前端性能测试框架 (阅读 55,342)
  2. 安全测试与渗透测试区别 (阅读 24,821)
  3. 让安卓手机通过代理翻墙的方法 (阅读 8,801)
  4. 使用Fiddler对手机应用进行抓包测试 (阅读 8,460)
  5. 代理的加密部分 (阅读 8,243)
  6. 服务器性能测试工具推荐 (阅读 7,901)
  7. 关于 SOCKS 代理的远端 DNS 解析 (阅读 7,742)
  8. 给Apache做压力测试时遇到的问题 (阅读 7,181)
  9. WEB性能测试工具推荐 (阅读 6,942)
  10. 可用性测试好助手——Morae软件的应用 (阅读 6,680)