squid透明和反向代理

一、配置透明代理
        基本实现步骤:
            1、修改squid.conf配置文件
                http_port 192.168.10.1:3128 transparent
            2、重新加载该配置
                squid -k reconfig
            3、添加iptables规则,把内部的http请求重定向到3128端口
                iptables -t nat -A PREROUTING -i eth0 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
            4、内部用户不需要在浏览器中设置代理,只需要设置网关 
            #至于内部dns指向可以把squid服务器同时做成缓存dns服务器,内部用户指向这台squid内部接口即可
二、squid反向代理
       
        
        1、windows:200.168.10.2
              squid-server: ifconfig eth0 200.168.10.1    ifconfig eth1 192.168.10.1
              web-server: ifconfig eth0 192.168.10.2
        2、修改配置文件
              此时如果服务器安装apache,则
              (一)可设置apache监听81端口,squid监听80端口,修改apache端口:vi /etc/httpd/httpd.conf,修改                                    listen:81。squid配置文件:vi /etc/squid/squid.conf
                      cache_peer server地址 服务器类型 http端口 icp端口 [可选项]
                      实验修改内容:
                            http_port 200.168.10.1:80 vhost
                            visible_hostname 200.168.10.1
                            acl all src all
                            http_access allow all
                            cache_peer 192.168.10.2 parent 80 0 originserver
              (二)如果不更改apache默认的80端口,squid设置其他可用端口时,例如3128,需要将80请求转发到3128,命令如下:
                        iptables -t nat -A PREROUTING -i eth0 -s 200.168.10.1 -p tcp --dport 80 -j REDIRECT --to 3128    
                        #此命令必须每次开机后运行,可以写成开机执行任务脚本          
                        实验修改内容:
                            http_port 200.168.10.1:3128 vhost
                            visible_hostname 200.168.10.1
                            acl all src all
                            http_access allow all
                            cache_peer 192.168.10.2 parent 80 0 originserver    #Squid向 Server 192.168.10.2的端口80发送请求
      3、若squid没开则开启squid否则重新加载squid配置文件 squid -k reconfig
 
三、查看优化速度(利用缓存)
    1、将一个简单的网站上传到squid代理服务器上
    2、安装rsync:yum -y install rsync
            rsync:
                -a    --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
                -e,    --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
            用rsync将它传到192.168.10.2服务器上:    rsync -a -e ssh myweb/ 192.168.10.2:/usr/local/apache2/htdocs/
    3、windows访问200.168.10.1
    查看缓存:
    /usr/local/apache2/logs/access_log
    /var/spool/squid下的tree 00来查看文件数,如果有缓存,则可以通过strings 00000000x来查看
 
四、基于反向代理实现虚拟主机映射
    1、在web-server中配置虚拟主机
        vi /etc/httpd/extra/httpd-vhosts.conf (这个文件被include进httpd.conf里了)
        加上这些:
       
    2、在 /usr/local/apache2/htdocs下新建两个文件夹lamp、web,里面分别建立一个index.html文件,分别写入www.lamp.com、www.web.com
    3、重启apache服务器:/usr/local/apache2/bin/apachectl restart
    4、应解 200.168.10.1     www.lamp.com
                  200.168.10.1     www.web.com
    4、在squid-server中vi /etc/squid/squid.conf 
            http_port 200.168.10.1:3128 vhost
            visible_hostname 200.168.10.1
            acl all src all
            http_access allow all
            cache_peer 192.168.10.2 parent 80 0 originserver name=a
            cache_peer 192.168.10.2 parent 80 0 originserver name=b
            cache_peer_domain a www.lamp.com
            cache_peer_domain b www.web.com
            cache_peer_access a allow all
            cache_peer_access b allow all
posted @ 2016-09-02 09:59  rhythm0121  阅读(195)  评论(0编辑  收藏  举报