1.传统正向代理
问题
本案例要求先快速搭建好一台Web服务器:
建立Web测试文件 /var/www/html/index.html
然后创建代理服务器,使得192.168.4.0/24网段中的所有主机,均可以通过该代理服务器访问Web服务。
设置代理服务端口为3128
设置内存缓存容量128M
设置硬盘缓存容量为200M,一级目录16个,二级目录128个
然后验证客户机能否通过代理服务器访问Web服务器:
客户端从浏览器访问Web服务器
查看服务器B的代理访问日志,验证来访地址
查看服务器A的Web访问日志,验证来访地址
方案
使用3台RHEL6虚拟机,其中一台作为Web服务器(192.168.4.205)、一台作为Squid代理服务器(192.168.4.5),另外一台作为测试用的Linux客户机(192.168.4.100),如图-1所示。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4af12eac0b18e32a93ad237e4bff22b1.png)
图-1
对于Web服务器的部署,此实验中仅需要安装httpd软件、启动服务,并生成测试首页文件即可,默认httpd网站根路径为/var/www/html,首页文档名称为index.html。
对于Squid代理服务器,则要求修改配置文件/etc/squid/squid.conf,实现代理功能,主要参数如下:
http_port:设置代理服务端口
visible_hostname:设置主机名称
cache_mem:设置内存缓存大小
cache_dir:设置硬盘缓存大小
http_access:设置访问控制权限
验证时,客户端需要设置浏览器,添加代理服务器信息,将192.168.4.5设置为自己的代理服务器,然后访问Web服务器,最后通过查看日志检验效果。:
squid默认访问日志:/var/log/squid/access.log
httpd默认访问日志:/var/log/httpd/access_log
步骤
实现此案例需要按照如下步骤进行。
步骤一:构建Web服务器
1)使用yum安装web软件包
[root@pc205 ~]# yum -y install httpd
… …
[root@pc205 ~]# rpm -q httpd
httpd-2.2.15-29.el6_4.x86_64
2)启用httpd服务,并设为开机自动运行
[root@pc205 ~]# service httpd restart ; chkconfig httpd on
Stopping httpd: [FAILED]
Starting httpd: [OK]
httpd服务默认通过TCP 80端口监听客户端请求:
[root@pc205 ~]# netstat -anptu | grep httpd
tcp 0 0 :::80 ::? LISTEN 2813/httpd
3)为Web访问建立测试文件
在网站根目录/var/www/html下创建一个名为index.html的首页文件:
[root@pc205 ~]# cat /var/www/html/index.html
Welcome
hello
hello
步骤二:部署Squid代理服务器 1)使用yum安装squid软件包: [root@svr5 ~]# yum -y install squid .. .. [root@svr5 ~]# rpm -q squid squid-3.1.10-19.el6_4.x86_64 2)修改/etc/squid/squid.conf配置文件: [root@svr5 ~]# vim /etc/squid/squid.conf .. .. http_port 3128 //代理端口 visible_hostname svr5.tarena.com //设置主机名 cache_mem 128 MB //内存缓存 cache_dir ufs /var/spool/squid 200 16 128 //硬盘缓存 http_access allow localnet //允许本机所在网络中的所有主机使用代理服务器 3)启动squid服务,并设置为开机启动: [root@svr5 ~]# service squid restart; chkconfing squid on Stopping squid: [FAILED] init_cache_dir /var/spool/squid... Starting squid: . [ OK ] 4)squid服务默认通过TCP 3128端口监听客户端请求: [root@svr5 ~]# netstat -anptu | grep 3128 tcp 0 0 :::3128 :::* LISTEN 3213/(squid) 步骤三:客户端测试 1)为浏览器设置代理服务器 以Firefox浏览器为例,在命令行输入firefox打开火狐浏览器,点击“Edit(编辑)”菜单,选择“Preferences(属性)”,如图-2所示。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190529203247611.png) 图-2 随后再点击“Advanced(高级)“选项卡,找到”Network(网络)“选项卡,点击”Settings(设置)“按钮,如图-3所示。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190529203234206.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc5MjM0NA==,size_16,color_FFFFFF,t_70) 图-3 点选”Manual Proxy Configuration“,在HTTP Proxy后输入代理服务器IP地址:192.168.4.5,并在Port后输入3128端口号信息,如图-4所示。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190529203219183.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc5MjM0NA==,size_16,color_FFFFFF,t_70) 图-4 2)客户端使用浏览器访问Web服务器 打开火狐浏览器在地址栏输入http://192.168.4.205,回车查看Web服务器页面信息。 3)通过日志文件查看效果 通过查看Squid代理服务器主机的access.log日志,可以查出有一个客户端地址为192.168.4.100的主机,通过代理服务器连接192.168.4.205上的Web服务器。 通过查看Web服务器上的access_log日志,可以看出代理192.168.4.5在访问Web服务器,而不会显示真实的客户端192.168.4.100的信息。 [root@svr5 ~]# tailf /var/log/squid/access.log 1429584868.414 0 192.168.4.100 TCP_MEM_HIT/200 486 GET http://192.168.4.205/ - NONE/- text/html [root@svr5 ~]# tailf /var/log/httpd/access_log 192.168.4.5 - - [20/Apr/2015:19:54:28 -0700] "GET /favicon.ico HTTP/1.1" 404 291 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131023 Firefox/17.0"