squid服务器的代理

实验前提:准备三台虚拟机,如果是在windows上安装的vmware 真实机也可以作为其中一台使用

      squid服务器IP:192.168.4.103

      WEB服务器IP :192.168.4.200

       客户机IP :192.168.4.254

实验一:传统代理

 squid服务器上操作

   yum -y install squid

   vim /etc/squid/squid.conf

   visible_hostname   squid.tarena.com

   cache_dir ufs /var/spool/squid  100  16  256

   iptables -t nat -I PREROUTING -i eth1 -s 192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128

   iptables -t nat -nL 查看规则是否生效

web服务器上的操作

   yum -y install httpd

   service httpd start 

   chkconfig httpd on

   echo helloword > /var/www/html/index.html

   在客户机浏览器上配置代理

   例如:火狐浏览器

   选项--高级--链接设置--手动配置代理

   输入:192.168.4.103

   端口:3128

  地址栏输入web服务器ip验证是否能访问

 如果是在虚拟机上验证可以直接用命令

  curl http://192.168.4.200 (web服务IP)

实验二:透明代理

  给squid添加一个网卡 网卡IP设置为:172.16.0.1

  web服务器添加一个网卡 IP设置为:172.16.0.2

        #vim /etc/squid/squid.conf

         http_access allow all

         http_port 3128 transparent

  网关设置转发 #iptables 语法格式

               #iptables -t 表名 -I 链 条件 -J 结果

  设置防火墙规则

     #iptables -t nat -I PREROUTING -i eth1 -s 192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128

  查看防火墙规则

      iptables -t nat -nL

  设置网关 vim /etc/sysconfig/network-scripts/ifcfg-eth0

         GATEWAY=192.168.4.103

  客户机验证;curl http://172.16.0.2 【web服务器新添加的网卡IP】

实验三:反向代理

  squid服务器上必须关闭httpd 否则端口冲突服务不能正常启动

  srvice httpd stop

  清空实验二的iptables规则

  iptables -t nat -F


  vim /etc/squid/squid.conf

  http_port 80 vhost

  cache_peer 172.16.0.2 parent 80 0 originserver

  cache_peer 172.16.0.1 parent 80 0 originserver

  service squid restart

 客户机验证:

   curl http://代理服务器IP地址


实验四:基于虚拟主机的代理

  web服务器上的操作

  vim /etc/httpd/conf/httpd.conf

  #NameVirtualHost..*:80    删除该行的注释符号“#”

<VirtualHost *:80>

  DocumentRoot /var/www/web1 

  ServerName www.baidu.com

<VirtualHost>

  

<VirtualHost *:80>

   DocumentRoot /var/www/web2 

   ServerName bbs.baidu.com

<VirtualHost>


分别在两个路径文件/var/www/web1 && /var/www/web2 下创建两个网站首页:web1 , web2 并给首页文件输入内容

mkdir /var/www/{web1,web2}

echo “www” > /var/www/web1/index.html

echo “bbs” > /var/www/web2/index.html



vim /etc/hosts

192.168.4.200 www.baidu.com bbs.baidu.com

修改squid配置文件

  cache_peer 192.168.2.2 parent 80 0 originserver name=www

  cache_peer 192.168.2.2 parent 80 0 originserver name=bbs

  cache_peer_domain www www.tarena.com

  cache_peer_domain bbs bbs.tarena.com

因为这里没有配置DNS服务 所以客户机上需要指定域名解析

vim /etc/hosts

192.168.4.103  www.baidu.com  bbs.baidu.com

客户机验证:

[root@monitor ~]# curl http://www.baidu.com

www.baidu.com

[root@monitor ~]# curl http://bbs.baidu.com

bbs.baidu.com

注意:添加网卡第二个eth1时需要更改网卡在/etc/sysconfig/network-scripts/ifcfg-eth1的HWADDR与物理地址一致(本人是直接复制的ifcfg-eth0 所以曾在此处出错)重启network时提示找不到设备eth1

ifconfig eth1

eth1      Link encap:Ethernet  HWaddr 00:0C:29:85:52:C6 


[root@slave200 web2]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

HWADDR=00:0C:29:85:52:C6


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章