移动端测试的代理服务器搭建
背景
移动设备想要访问位于局域网中的某个特定设备上搭建的服务,需要通过代理服务器来实现,针对不同操作系统搭建代理服务器有不同的软件,如果系统是OSX的话,可以使用Charles,对于Windows,可以使用大名鼎鼎的Fiddler,可视化软件的使用这里不详述,本文重点讲述在Unix/Linux上使用Squid来搭建代理服务器。
本地环境的准备
通常我们需要测试的是某个设备上搭建的本地服务,那么至少要保证使用127.0.0.1是可以访问的,如果是配置了域名的虚拟主机也是同理,至少需要确保本地绑定Hosts可访问。
假如你的设备上有一个正在运行的inhvn,那么需要保证可以在设备上通过绑定127.0.0.1inhvn的hosts能正常访问到该服务。
快速的步骤概要
安装Squid
以CentOS为例,可以使用yum来安装。
$yuminstallsquid
其他linux系统有不同的软件来安装,否则可以选择编译的办法来安装。
配置Squid
使用yum安装好的Squid,默认的目录会是/usr/local/squid,默认的配置文件是/usr/local/squid/etc/squidonf。
编辑配置文件:
$vim/usr/local/squid/etc/squidonf
这里重点讲述几个重要的配置。
先增加一个本地server的acl访问规则的配置,然后配置本地server不做缓存,因为Squid默认会对所有访问请求做缓存,而本地测试服务不需要借助Squid来做缓存控制。
acllocalServersdst127.0.0.1#LocalServer
no_cachedenylocalServers#Denylocalservercache
当Squid找不到本地所运行的主机名时可能会报如下错误:
所以最好提前设置一个可见主机名,以免发生错误,该可见主机名可以在本地单独配置一个xxx的虚拟主机(记得绑定hosts)而专用于Squid。
visible_hostnamexxx
配置允许所有HTTP的访问
http_accessallowall
配置代理端口,默认端口是3128,可以修改成你想要的任意端口。
http_port8411
配置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/squidkshutdown
由于Squid的access.log会记录每一条访问日志,一定时间后该日至会非常庞大,所以需要定时清理,可以设置一个定制任务来清理该文件。
使用crontab来增加一条定时任务。
$crontabe
在打开的文件中新增一条记录,这条记录会每天0点的时候将访问日志清空。
00***/usr/local/squid/sbin/squidkshutdown
30***echo>/var/log/squid/access.log
50***/usr/local/squid/sbin/squid
如果你觉得这种办法太简单粗暴,可以使用Squid自带的滚动日至的功能
$/usr/local/squid/sbin/squidkrotate
Squid是一个很强大的开源软件,可以用于搭建代理服务器,还可以作为大型站点的WEB加速器,想更详细的了解可以查看Squid权威指南。
移动设备如何访问代理服务器?
代理服务器搭建好后,移动端设备想要访问代理服务器,在Wifi的HTTP代理设置中填入代理服务器的IP和Squid配置的代理端口,就可以正常访问代理服务器上的inhvn。
下一篇:国内游戏出海首选香港服务器租用