700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 缓存加速----Squid传统代理透明代理

缓存加速----Squid传统代理透明代理

时间:2023-07-13 19:12:10

相关推荐

缓存加速----Squid传统代理透明代理

文章目录

前言一:Squid代理服务概述1.1:概述1.2:工作机制1.3:Squid基本类型 二:环境三:传统代理试验过程四:透明代理实验过程

前言

一:Squid代理服务概述

1.1:概述

Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

1.2:工作机制

缓存网页对象,减少重复请求

它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求

也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:/)并向这个页面发出请求

然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。

1.3:Squid基本类型

传统代理 普通的代理服务,适用于Internet,需明确指定服务端 透明代理 客户机不需要指定代理服务器的地址和端口,是通过默认路由,防火墙将web重定向给代理 使用代理可以提高web的访问速度,同时可以隐藏客户机的真实IP地址,从而起到一定的保护作用另一方面,squid也可以针对要访问的目标、客户机的地址、访问的时间段进行过滤控制。

二:环境

VMware软件一台centos7虚拟机作为squid服务器,IP地址为:192.168.100.140一台centos7虚拟机作为web服务器,IP地址为:192.168.100.150一台win10虚拟机作为client测试机,IP地址为:192.168.100.10

三:传统代理试验过程

Squid服务器配置

1.解压squid软件包monut.cifs //192.168.1.150/qq-Download /mntcd /mnttar xzvf squid-3.4.6.tar.gz -C /opt2.安装相关软件包yum install gcc gcc-c++ make -y3.配置服务模块,编译安装cd /opt/suqid-3.4.6/./configure \--prefix=/usr/local/squid \--sysconfdir=/etc --enable-arp-acl \--enable-linux-netfilter \--enable-linux-tproxy \--enable-async-io=100 \--enable-err-language="Simplify_Chinese" \--enable-underscore \--enable-poll \--enable-gnuregexmake && make install4.创建软链接,优化服务控制方式ln -s /usr/local/squid/sbin/squid /usr/local/sbin/5.创建squid用户useradd -M -s /sbin/nologin squid6.修改squid中的var的属性chowm -R squid.squid /usr/local/squid/var/7.编辑squid的配置文件vim /etc/squid.conf55 # And finally deny all other access to this proxy56 http_access allow all57 http_access deny all //允许所有用户访问58 59 # Squid normally listens to port 312860 http_port 3128 61 cache_mem 64 MB //指定缓存功能所使用的内存空间大小62 reply_body_max_size 10 MB //允许用户下载的最大文件大小63 maximum_object_size 4096 KB //允许保存到缓存空间的最大对象大小64 cache_effective_user squid //添加指定程序用户65 cache_effective_group squid //添加指定账户基本组66 67 # Uncomment and adjust the following to add a disk cache directory.68 #cache_dir ufs /usr/local/squid/var/cache/squid 100 16 2568.编辑防火墙规则iptables -F //清除所有规则iptables -I INPUT -p tcp --dport 3128 -j ACCEPT //允许目标端口3128做转发9.检查语法并且开启服务squid -k parse //检查配置文件语法squid -z//初始化缓存目录squid //启动服务[root@squid ~]# netstat -natp | grep squidtcp6 00 :::3128 :::*LISTEN36414/(squid-1)[root@squid ~]# 10.编辑脚本,优化服务控制方式(service 工具)vim /etc/init.d/squid#!/bin/bash#chkconfig: 2345 90 25PID="/usr/local/squid/var/run/squid.pid"CONF="/etc/squid.conf"CMD="/usr/local/squid/sbin/squid"case "$1" instart)netstat -natp | grep squid &> /dev/nullif [ $? -eq 0 ]thenecho "squid is running"elseecho "正在启动 squid...."echo "成功启动"$CMDfi;;stop)$CMD -k kill &> /dev/nullrm -rf $PID &> /dev/null;;status)[ -f $PID ] &> /dev/nullif [ $? -eq 0 ]thennetstat -natp | grep squidelseecho "squid is not running"fi;;restart)$0 stop &> /dev/nullecho "正在关闭 squid..."echo "关闭成功"$0 start &> /dev/nullecho "正在启动 squid..."echo "启动成功";;reload)$CMD -k reconfigure;;check)$CMD -k parse;;*)echo "用法:$0{start|stop|status|reload|check|restart}";;esacchmod +x /etc/init.d/squid //添加服务执行权限 chkconfig --add squid //添加到service的服务列表chkconfig --level 35 squid on //开机自启[root@localhost ~]# service squid restart正在关闭 squid...关闭成功正在启动 squid...启动成功[root@localhost ~]#

Web服务器配置

[root@apache ~]# yum install httpd -y[root@apache ~]# systemctl stop firewalld.service [root@apache ~]# setenforce 0[root@apache ~]# systemctl start httpd.service [root@apache ~]# netstat -natp | grep 80

客户机Win10的配置

配置地址192.168.100.10 网关192.168.100.2

浏览器访问Web服务器测试

这里看不出来,到底是代理访问的Apache还是客户端访问的,我们要看Apache的日志

[root@apache ~]# cat /var/log/httpd/access_log

日志显示是代理来访问的Web服务器

那么问题来了,客户机要选择代理,若是客户不会操作的,由此,产生Squid透明模式,下文介绍如何搭建

四:透明代理实验过程

网络拓扑图

实验环境

配置squid服务器

1.配置网卡ens33为NAT模式ens36为仅主机模式cd /etc/sysconfig/network-scripts/cp -p ifcfg-ens33 ifcfg-ens36vim ifcfg-ens36TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="none"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens36"DEVICE="ens36"ONBOOT="yes"IPADDR="192.168.10.1" '这个地址是客户机的网关'PREFIX="24"IPV6_PRIVACY="no"~ service network restart [root@squid network-scripts]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.100.140 netmask 255.255.255.0 broadcast 192.168.100.255inet6 fe80::7264:7578:de4e:190 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:17:9c:75 txqueuelen 1000 (Ethernet)RX packets 96630 bytes 110402508 (105.2 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 94922 bytes 172796714 (164.7 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255......[root@squid ~]# 2.配置路由转发功能vim /etc/sysctl.confnet.ipv4.ip_forward=1sysctl -p '使其生效'3.配置squid文件vim /etc/squid.conf59 # Squid normally listens to port 312860 http_port 192.168.10.1:3128 transparent配置网卡网关地址及端口service squid restart4.添加防火墙规则iptables -F //清空规则iptables -t nat -Fiptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 443 -j REDIRECT --to 3128iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

配置web服务器

yum install httpd -yroute add -net 192.168.10.0/24 gw 192.168.100.140//添加静态路由 下一跳systemctl stop firewalld.service setenforce 0

配置客户端,虚拟机处于仅主机模式

验证服务配置

查看Web服务日志

注意: 在web服务器中,添加到路由表的静态路由有时间限制

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。