背景
移动设备想要访问位于局域网中的某个特定设备上搭建的服务。需要通过代理服务器来实现。针对不同操作系统搭建代理服务器有不同的软件。如果系统是 OS X 的话。可以使用 Charles。对于 Windows。可以使用大名鼎鼎的 Fiddler 。可视化软件的使用这里不详述。本文重点讲述在 Unix/Linux 上使用 Squid 来搭建代理服务器。
本地环境的准备
通常我们需要测试的是某个设备上搭建的本地服务。那么至少要保证使用 127.0.0.1 是可以访问的。如果是配置了域名的虚拟主机也是同理。至少需要确保本地绑定 Hosts 可访问。
假如你的设备上有一个正在运行的idcbest.com。那么需要保证可以在设备上通过绑定 127.0.0.1idcbest.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 找不到本地所运行的主机名时可能会报如下错误:
所以最好提前设置一个可见主机名。以免发生错误。该可见主机名可以在本地单独配置一个 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 配置的代理端口。就可以正常访问代理服务器上的idcbest.com。
本文地址:https://gpu.xuandashi.com/37684.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!