强大的Squid 代理服务器应用

您所在的位置:网站首页 透明代理和传统代理 强大的Squid 代理服务器应用

强大的Squid 代理服务器应用

2023-09-05 09:31| 来源: 网络整理| 查看: 265

Squid 代理服务器应用 一、Squid 服务基础1.1 缓存代理概述(一) 代理的工作机制(二)代理的基本类型 1.2 编译安装及运行步骤(理论)1.3 编译安装及运行具体操作(实操) 二、构建代理服务器2.1 传统代理2.1.1 搭建传统代理的步骤(理论)2.1.2 搭建传统代理的具体操作步骤(理论) 2.2 透明代理2.2.1 搭建透明代理的步骤(理论)2.2.1 搭建透明代理的具体实验步骤(实操) 2.3 ACL 访问控制2.3.1 设置ACL访问控制的步骤(理论)2.3.2 设置ACL访问控制的具体操作步骤(实操) 2.4 Squid 日志分析2.2.1 实现Squid日志分析的步骤(理论)2.2.2 实现Squid日志分析的具体操作步骤(实操) 2.5 反向代理2.5.1 反向代理的步骤(理论)2.5.1 反向代理的具体操作步骤(实操) 三、Squid总结

一、Squid 服务基础

Squid 是 Linux 系 统 中 最 常 用 的 一 款 开 源 代 理 服 务 软 件 ,可以很好地实现 HTTP 和 FTP,以及 DNS 查询、SSL 等应 用的缓存代理,功能十分强大。

官 方 网 站 为: http://www.squid-cache.org/

1.1 缓存代理概述

作为应用层的代理服务软件,Squid 主要提供缓存加速、应用层过滤控制的功能。

(一) 代理的工作机制

当客户机通过代理来请求 Web 页面时,指定的代理服务器会先检查自己的缓存:

如果缓存中已经有客户机需要的页面,则直接将缓存中的页面内容反馈给客户机。如果缓存中没 有客户机要访问的页面,则由代理服务器向 Internet 发送访问请求,获得返回的 Web 页面 以后,将网页数据保存到缓存中并发送给客户机

在这里插入图片描述 HTTP 代理的缓存加速对象主要是文字、图像等静态 Web 元素。使用缓存机制后,当 客户机在不同的时候访问同一 Web 元素,或者不同的客户机访问相同的 Web 元素时,可 以直接从代理服务器的缓存中获得结果。这样就大大减少了向 Internet 提交重复的 Web 请 求的过程,提高了客户机的 Web 访问响应速度。

由于客户机的 Web 访问请求实际上是由代理服务器来代替完成的,从而可以隐藏用户 的真实 IP 地址,起到一定的保护作用。另一方面,代理服务器担任着类似“经纪人”的角色, 可以针对要访问的目标、客户机的地址、访问的时间段等进行过滤控制。

(二)代理的基本类型

根据实现方式不同,代理服务可分为传统代理和透明代理两种常见的代理服务:

传统代理:也就是普通的代理服务,首先必须在客户机的浏览器、QQ 聊天工具、下载 软件等程序中手动设置代理服务器的地址和端口,然后才能使用代理来访问网络。对于 网页浏览器,访问网站时的域名解析请求也会发给指定的代理服务器。

透明代理:提供与传统代理相同的功能和服务,其区别在于客户机不需要指定代理服务 器的地址和端口,而是通过默认路由、防火墙策略将 Web 访问重定向,实际仍然交给 代理服务器来处理。重定向的过程对客户机是“透明”的,用户甚至并不知道自己在使用 代理服务,所以称为透明代理。使用透明代理时,网页浏览器访问网站时的域名解析请 求将优先发给 DNS 服务器。

实际应用中,传统代理多见于 Internet 环境,如为 QQ 程序使用代理可以隐藏本机真实 IP 地址、为下载工具使用多个代理可以规避服务器的并发连接限制。而透明代理多见于局 域网环境,如在 Linux 网关中启用透明代理后,局域网主机无须进行额外设置就可以享受更 好的上网速度。

1.2 编译安装及运行步骤(理论) ## 首先关闭防火墙和SElinux systemctl stop firewalld systemctl disable firewalld setenforce 0

1.编译安装Squid(将所需的包上传到/opt目录下)

yum -y install gcc gcc-c++ make tar zxvf squid-3.5.28.tar.gz -C /opt/ #解压软件包 cd /opt/squid-3.5.28 ./configure --prefix=/usr/local/squid \ #指定安装目录路径 --sysconfdir=/etc \ #指定配置文件路径 --enable-arp-acl \ #MAC地址管控,防止客户端使用IP欺骗 --enable-linux-netfilter \ #使用内核过滤 --enable-linux-tproxy \ #支持透明模式 --enable-async-io=100 \ #异步IO,提升存储性能 --enable-err-language="Simplify_ Chinese" \ #错误信息的显示语言 --enable-underscore \ #允许URL中有下划线 --disable-poll \ #关闭默认使用poll模式 --enable-epoll \ #开启epoll模式提升性能 --enable-gnuregex #使用GNU正则表达式 make && make install ln -s /usr/local/squid/sbin/* /usr/local/sbin/ useradd -M -s /sbin/nologin squid chown -R squid:squid /usr/local/squid/var/ #此目录用于存放缓存文件

2.修改Squid的配置文件

vim /etc/squid.conf ...... -----56行--插入------ http_access allow all #放在http_access deny all 之前,允许任意客户机使用代理服务,控制规则自上而下匹配 http_access deny all http_port 3128 #用来指定代理服务监听的地址和端口(默认的端口号为3128) -----61行--插入------ cache_effective_user squid #添加,指定程序用户,用来设置初始化、运行时缓存的账号,否则启动不成功 cache_effective_group squid #添加,指定账号基本组 coredump_dir /usr/local/squid/var/cache/squid #指定缓存文件目录

3 . Squid 的运行控制

#检查配置文件语法是否正确 squid -k parse #启动Squid, 第一次启动Squid服务时,会自动初始化缓存目录 squid -z #-z选项用来初始化缓存目录 squid #启动squid 服务 netstat -anpt | grep "squid"

4.创建 Squid 服务脚本

vim /etc/init.d/squid #!/bin/bash #chkconfig: 2345 90 25 PID="/usr/local/squid/var/run/squid.pid" CONF="/etc/squid.conf" CMD="/usr/local/squid/sbin/squid" case "$1" in start) netstat -natp | grep squid &> /dev/null if [ $? -eq 0 ] then echo "squid is running" else echo "正在启动 squid..." $CMD fi ;; stop) $CMD -k kill &> /dev/null rm -rf $PID &> /dev/null ;; status) [ -f $PID ] &> /dev/null if [ $? -eq 0 ] then netstat -natp | grep squid else echo "squid is not running" fi ;; restart) $0 stop &> /dev/null echo "正在关闭 squid..." $0 start &> /dev/null echo "正在启动 squid..." ;; reload) $CMD -k reconfigure ;; check) $CMD -k parse ;; *) echo "用法:$0{start|stop|status|reload|check|restart}" ;; esac #2345是默认自启动级别,如是 - 代表任何级别都不自启动; 90是启动优先级,25是停止优先级, 优先级范围是0一100,数字越大,优先级越低。 chmod +x /etc/init.d/squid chkconfig --add squid chkconfig --level 35 squid on 1.3 编译安装及运行具体操作(实操)

首先关闭防火墙和SElinux 在这里插入图片描述

1.编译安装Squid(将所需的包上传到/opt目录下)

①放入软件包安装相关程序 在这里插入图片描述 ②解压 在这里插入图片描述 ③安装squid相关模块 在这里插入图片描述

④编译安装squid 在这里插入图片描述 ⑤优化路径、创建squid用户和指定存放缓存文件的路径 在这里插入图片描述

2.修改Squid的配置文件 在这里插入图片描述

3 . Squid 的运行控制 ①检查配置文件语法是否正确 在这里插入图片描述 ②启动Squid, 第一次启动Squid服务时,会自动初始化缓存目录 在这里插入图片描述

4.创建 Squid 服务脚本 ①创建squid文件写入脚本 在这里插入图片描述 ②赋予权限加入开机自启动 在这里插入图片描述

二、构建代理服务器 2.1 传统代理

使用传统代理的特点在于客户机的相关程序(如 IE 浏览器、QQ 聊天软件)必须指定 代理服务器的地址、端口等基本信息。 基于 Internet 网络环境(如下图),案例的主要需求描述如下。

在 Linux 主机 B 上,构建 Squid 为客户机访问各种网站提供代理服务,但禁止通过代 理下载超过 10MB 大小的文件。 -在客户机 C 上,指定主机 B 作为 Web 访问代理,以隐藏自己的真实 IP 地址。

针对上述实验环境,主机 B 作为代理服务器,必须正确构建 Squid 服务,并允许客户 机使用代理。若要客户机通过代理以 http://www.bdqn.com/的域名形式访问,则代理服务器 本身必须能够正确解析该域名。主机 C 作为客户机,需要为浏览器等程序指定所使用的代 理服务器地址、端口号等信息,主机 A 作为测试网站,需要启用 httpd 服务。

2.1.1 搭建传统代理的步骤(理论)

环境准备工作:

服务器类型系统和IP地址需要安装的组件网络模式squid服务器CentOS7.4(64 位) 192.168.80.10squid-3.5.28.tar.gznat模式web服务器CentOS7.4(64 位) 192.168.80.20Apachenat模式client客户端Win10客户端 192.168.80.100——nat模式

1 . 修改squid.conf配置文件

vim /etc/squid.conf ...... http_access allow all http_access deny all http_port 3128 cache_effective_user squid cache_leffective_group squid -------63行--插入--------- cache_mem 64 MB #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4 reply_body_max_size 10 MB #允许用户下载的最大文件大小,以字节为单位,当下载超过指定大小的Web对象时,浏览器的报错页面中会出现“请求或访问太大”的提示默认设置0表示不进行限制 maximum_object_size 4096 KB #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户

2 . 重启服务

service squid restart systemctl restart squid

3 . 添加设置防火墙规则

#生产环境中还需要修改防火墙规则 iptables -F iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

4 . 修改客户机代理

#客户机的代理配置 打开浏览器,工具-->Internet选项-->连接 -->局域网设置-->开启代理服务器 (地址: Squid服务器IP地址,端口: 3128) 清除缓存后,使用浏览器访问http://192.168.80.10 (web服务器地址)

5 . 访问web服务器进行验证

#查看Squid访问日志的新增记录 tail -f /usr/local/squid/var/logs/access.log #查看Web访问日志的新增记录 tail -f /var/log/httpd/access_log 在浏览器输入Web服务器IP地址访问,查看Web服务器访问日志,显示的是由代理服务器替客户机在访问。 2.1.2 搭建传统代理的具体操作步骤(理论)

1 . 修改squid.conf配置文件 在这里插入图片描述

2 . 重启服务 在这里插入图片描述

3 . 添加设置防火墙规则 在这里插入图片描述

4 . 修改客户机代理(我这里使用的谷歌浏览器) ①打开谷歌浏览器设置代理服务器 在这里插入图片描述

②清除浏览器缓存 在这里插入图片描述 5 . web服务器设置 ①web服务器关闭防火墙安装httpd服务 在这里插入图片描述 ②开启httpd服务在这里插入图片描述

6 . web服务器使用tail开启日志跟踪页面,Client访问web服务器进行验证,可以看到显示的是squid代理服务器的ip

在这里插入图片描述

在这里插入图片描述

2.2 透明代理

透明代理提供的服务功能与传统代理是一致的,但是其“透明”的实现依赖于默认路由和 防火墙的重定向策略,因此更适用于为局域网主机服务,而不适合为 Internet 中的客户机提 供服务。

在 Linux 网关上,构建 Squid 为客户机访问 Internet 提供代理服务。 在所有的局域网客户机上,只需正确设置 IP 地址、默认网关和 DNS,不需要手动指定 代理服务器的地址、端口等信息。 在这里插入图片描述

环境准备工作:

服务器类型系统和IP地址需要安装的组件网络模式squid服务器CentOS7.4(64 位) ens33:192.168.80.10,ens37:12.0.0.1squid-3.5.28.tar.gzens33为nat模式,ens36为仅主机web服务器CentOS7.4(64 位) 192.168.80.20Apachenat模式client客户端Win10客户端 12.0.0.12——仅主机模式 2.2.1 搭建透明代理的步骤(理论)

1 . Squid服务器:双网卡

内网ens33: 192.168.80.10 外网ens36: 12.0.0.1

2 . quid服务器配置 ① 修改新网卡配置

cd /etc/sysconfig/network-scripts/ cp -p ifcfg-ens33 ifcfg-ens36 vim ifcfg-ens36 #修改以下内容,网关和dns不需要 ....... NAME=ens36 DEVICE=ens36 IPADDR=12.0.0.1 NETMASK=255.255.255.0 systemctl restart network

②修改squid配置文件

vim /etc/squid.conf http_access allow all http_access deny all --60行--修改添加提供内网服务的IP地址,和支持透明代理选项transparent http_port 192.168.80.20:3128 transparent systemctl restart squid

③路由和防火墙配置

#开启路由转发,实现本机中不同网段的地址转发 echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p #修改防火墙规则 iptables -F iptables -t nat -F ##将来源为12.0.0.0 网段:80/443端口的流量重定向到3128端口 iptables -t nat -I PREROUTING -i ens36 -s 12.0.0.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 #用于转发http协议 iptables -t nat -I PREROUTING -i ens36 -s 12.0.0.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 #用于转发https协议 #若进行重启,则需要配置以下规则 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

2 . web服务器配置

##添加一条静态路由 route add -net 12.0.0.0/24 gw 192.168.80.10

3 . client关闭代理服务器

打开浏览器,工具-->Internet选项-->连接 -->局域网设置-->关闭代理服务器

4 . wen服务器使用tail目录追踪日志,然后client进行访问web查看日志来访ip是否为squid服务器

tail -f /var/log/httpd/access_log 2.2.1 搭建透明代理的具体实验步骤(实操)

1 . Squid服务器:双网卡

① 切换到网卡目录,然后查看新增的网卡是多少,我这里为ens36 在这里插入图片描述 ②复制网卡并配置ip相关 在这里插入图片描述 ③ 重新查看网卡是否配置成功 在这里插入图片描述 ④ 修改squid配置文件,添加ip 在这里插入图片描述 ⑤ 开启ip转发功能 在这里插入图片描述在这里插入图片描述 ⑥修改防火墙规则

在这里插入图片描述 2 . web服务器配置静态路由 在这里插入图片描述

3 . Client设置

① 关闭代理服务器 在这里插入图片描述

② Client访问web服务器测试 在这里插入图片描述 ③ web上查看访问日志是否为网关地址

在这里插入图片描述

2.3 ACL 访问控制

Squid 提供了强大的代理控制机制,通过合理设置 ACL(Access Control List,访问控 制列表)并进行限制,可以针对源地址、目标地址、访问的 URL 路径、访问的时间等各种 条件进行过滤。

在配置文件 squid.conf 中,ACL 访问控制通过以下两个步骤来实现:

1.使用 acl 配置项定义需要控制的条件;2.通过 http_access 配置项对已定义的列表做“允许”或“拒 绝”访问的控制。 2.3.1 设置ACL访问控制的步骤(理论)

环境准备工作:

服务器类型系统和IP地址需要安装的组件网络模式squid服务器CentOS7.4(64 位) 192.168.80.10squid-3.5.28.tar.gznat模式web服务器CentOS7.4(64 位) 192.168.80.20Apachenat模式web服务器CentOS7.4(64 位) 192.168.80.30Apachenat模式client客户端CentOS7.4(64 位) 192.168.80.40——nat模式

1、定义访问控制列表,

格式: acl列表名称 列表类型 列表内容 列表名称:名称自定义,相当于给ac1起个名字 列表类型:必须使用squid预定义的值,对应不同类别的控制条件 列表内容:是要控制的具体对象,不同类型的列表所对应的内容也不一样,可以有多个值(以空格为分隔,为“或"的关系)

方法一:

vim /etc/squid.conf ...... acl localhost src 192.168.80.10/32 #源地址为 192.168.184.10 acl MYLAN src 192.168.80.0/24 #客户机网段 acl destionhost dst 192.168.80.20/32 #目标地址为 192.168.184.20 acl MC20 maxconn 20 #最大并发连接 20 acl PORT port 21 #目标端口 21 acl DMBLOCK dstdomain .qq.com #目标域,匹配域内所有站点 acl BURL url_regex -i ^rtsp:// ^emule:// #以 rtsp://、emule:// 开头的 URL,-i表示忽略大小写 acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ #以 .mp3、.mp4、.rmvb 结尾的 URL 路径 acl WORKTIME time MTWHF 08:30-17:30 #时间为周一至周五 8:30~17:30,“MTWHF”为每个星期的英文首字母

方法二:(我这里使用的方法二)

## 建立目标 IP 地址名单 vim ipblock.list 192.168.80.20 #添加要拒绝的服务器ip

修改squid配置文件

vim /etc/squid.conf .... # should be allowed (此行下面添加) acl destionhost dst "/dest.list" .... # Deny requests to certain unsafe ports (此行下面添加) http_access deny destionhost ... # Squid normally listens to port 3128 http_port 3128 ##修改为3128端口

重启服务并查看是否开启

systemctl restart squid.service netstat -natp | grep 3128

2 . WEB服务器1和WEB服务器2上安装httpd服务

yum install -y httpd systemctl start httpd

3 . Client客户上测试

在火狐浏览器中设置手动代理服务

设置步骤: 打开菜单 》》首选项 》》高级 》》 网络 》》连接

浏览器中输入192.168.80.20和192.168.80.30查看web1是否被拒绝

2.3.2 设置ACL访问控制的具体操作步骤(实操)

1 . squid服务器上配置

① 建立目标 IP 地址名单 在这里插入图片描述 ② 修改squid配置文件 在这里插入图片描述 在这里插入图片描述 ③ 重启squid服务并查看端口 在这里插入图片描述

2 . WEB1和WEB2上安装httpd服务并开启

① 关闭防火墙和SElinux 在这里插入图片描述 ② 安装httpd服务并开启 在这里插入图片描述 3 . Client客户上测试

① 在火狐浏览器中设置手动代理服务

设置步骤: 打开菜单 》》首选项 》》高级 》》 网络 》》连接

在这里插入图片描述

② 清理缓存记录 在这里插入图片描述 ③ 访问WEB1测试 在这里插入图片描述

④ 访问WEB2测试 在这里插入图片描述

2.4 Squid 日志分析

SARG 全称是 Squid Analysis Report Generator,是一款 Squid 日志分析工具,采用 HTML 格式,详细列出每位用户访问 Internet 的站点信息、时间占用信息、排名、连接次数、 访问量等。

2.2.1 实现Squid日志分析的步骤(理论)

1 . 安装 GD 库

[root@localhost ~]# yum -y install gd gd-devel pcre-devel

2.安装 SARG

[root@localhost ~]# mkdir /usr/local/sarg [root@localhost ~]# tar zxf sarg-2.3.7.tar.gz [root@localhost ~]# cd sarg-2.3.7 ##--sysconfdir=/etc/sarg: 配置文件目录,默认是/usr/loca/etc ##--enable-extraprotection: 添加额外的安全保护 [root@localhost sarg-2.3.7]# ./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection [root@localhost ~]#make && make install

3.修改sarg配置文件

cd /etc/sarg/ vim sarg.conf -----------------------第7行取消注释----------------------------------- access_log /usr/local/squid/var/logs/access.log #指定访问日志文件 -----------------------第25行取消注释----------------------------------- title "Squid User Access Reports" #网页标题 -----------------------第120行取消注释----------------------------------- output_dir /var/www/html/sarg #报告输出目录 -----------------------第178行取消注释----------------------------------- user_ip no #使用用户名显示 -----------------------第184行取消注释并修改----------------------------------- topuser_sort_field connect reverse #top排序中,指定连接次数采用降序排列,升序是normal -----------------------第190行取消注释并修改----------------------------------- user_sort_field connect reverse #对于用户访问记录,连接次数按降序排序 -----------------------第206行取消注释并修改----------------------------------- exclude_hosts /usr/local/sarg/noreport #指定不计入排序的站点列表的文件 -----------------------第257行取消注释----------------------------------- overwrite_report no #同名同日期的日志是否覆盖 -----------------------第289行取消注释并修改----------------------------------- mail_utility mailq.postfix #发送邮件报告命令 -----------------------第434行取消注释并修改----------------------------------- charset UTF-8 #指定字符集UTF-8 -----------------------第518行取消注释----------------------------------- weekdays 0-6 #top排行的星期周期 -----------------------第525行取消注释----------------------------------- hours 0-23 #top排行的时间周期 -----------------------第633行取消注释----------------------------------- www_document_root /var/www/html #指定网页根目录

4 . 添加不加入站点文件

touch /usr/local/sarg/noreport ln -s /usr/local/sarg/bin/sarg /usr/local/bin/ sarg ## 显示一下代表成功 SARG: 纪录在文件: 334, reading: 100.00% SARG: 成功的生成报告在 /var/www/html/squid-reports/2021Jul05-2021Jul06

5 . 添加计划任务,执行每天生成报告

vim /usr/local/sarg/report.sh #!/bin/bash #Get current date TODAY=$(date +%d/%m/%Y) #get one week ago today YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y) /usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/sarg -z -d $YESTERDAY-$TODAY &> /dev/null exit 0 chmod +x /usr/local/sarg/report.sh crontab -e crontab: installing new crontab 2.2.2 实现Squid日志分析的具体操作步骤(实操)

1 . 安装 GD 库 在这里插入图片描述 2.安装 SARG

① 放入sarg安装包 在这里插入图片描述 ② 解压安装包 在这里插入图片描述 ③ 安装相关模块 在这里插入图片描述 ④ 编译安装sarg

在这里插入图片描述 3.修改sarg配置文件

在这里插入图片描述 在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 4 . 添加不加入站点文件

① 优化路径并启动sarg 在这里插入图片描述

② 浏览器中访问squid服务器测试 在这里插入图片描述

5 . 添加计划任务,执行每天生成报告

① 编写shell脚本,可以自动生成报告 在这里插入图片描述 ② 加入到计划性任务中,每天自动生成报告

在这里插入图片描述

2.5 反向代理

如果Squid反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端; 否则反向代理服务器将向后台的Web服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

工作机制:

缓存网页对象,减少重复请求将互联网请求轮询或按权重分配到内网web服务器代理用户请求,避免用户直接访问Web服务器,提高安全 2.5.1 反向代理的步骤(理论)

在这里插入图片描述

环境准备工作:

服务器类型系统和IP地址需要安装的组件网络模式squid服务器CentOS7.4(64 位) 192.168.80.10squid-3.5.28.tar.gznat模式web服务器CentOS7.4(64 位) 192.168.80.20Apachenat模式web服务器CentOS7.4(64 位) 192.168.80.30Apachenat模式client客户端Win10 192.168.80.100——nat模式

1 . 开启防火墙、关闭httpd服务

systemctl start firewalld.service systemctl stop httpd.service

2 . 清空防火墙规则,并放空3128端口

iptables -F iptables -t nat -F iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

3 . 修改squid配置文件

http_port 192.168.80.10:80 accel vhost vport cache_peer 192.168.80.20 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1 cache_peer 192.168.80.30 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2 cache_peer_domain web1 web2 www.clj.com 表示对www.clj.com的请求,squid向192.168.80.20和192.168.80.30的80端口发出请求 ##重启squid服务 systemctl stop squid.service systemctl start squid ####关键字解释如下#### http port 80 accel vhost vport #squid从一个缓存变成了一个Web服务器反向代理加速模式,这个时候squid在80端口监听请求, 同时和webserver的请求端口(vhost vport)绑定,这个时候请求到了squid, squid是不用转发请求的, 而是直接要么从缓存中拿数据要么向绑定的端口直接请求数据。 accel:反向代理加速模式 vhost:支持域名或主机名来表示代理节点 vport :支持IP和端口来表示代理节点 parent :代表为父节点,上下关系,非平级关系 80:代理内部web服务器的80端口 0 :没有使用icp, 表示就一台squid服务器 no-query :不做查询操作,直接获取数据 originserver :指定是源服务器 round- robin : 指定squid通过轮询方式将请求分发到其中一台父节点 maxconn:指定最大连接数 weight :指定权重 name:设置别名

4 . 后端2台web节点服务器设置

##节点1(web1:192.168.80.20) echo "this is WEB1" >> /var/www/html/index.html ##节点2(web2:192.168.80.30) echo "this is WEB1" >> /var/www/html/index.html

5 . 客户机的域名映射配置

修改C:\Windows\System32\drivers\etc\hosts 文件 192.168.80.10 www.clj.com

6 . 开启客户机的代理配置

打开浏览器,工具-->Internet选项-->连接-->局域网设置-->开启代理服务器 (地址: Squid服.务器IP地址,端口: 80) 浏览器访问http:/ /www. clj. com 2.5.1 反向代理的具体操作步骤(实操)

1 . 开启防火墙、关闭httpd服务 在这里插入图片描述 2 . 清空防火墙规则,并放空3128端口 在这里插入图片描述 3 . 修改squid配置文件 在这里插入图片描述 在这里插入图片描述 4 . 后端2台web节点服务器设置

① web1安装http服务并创建网页文件 在这里插入图片描述 ② web1安装http服务并创建网页文件 在这里插入图片描述

5 . 客户机的域名映射配置

① 找到hosts这个文件 在这里插入图片描述 ② 添加自己需要解析的ip 在这里插入图片描述

6 . 测试反向代理

① 开启客户机的代理配置 在这里插入图片描述

② 访问squid进行测试反向代理功能 在这里插入图片描述在这里插入图片描述

三、Squid总结

1 . Squid作用: 缓存加速,缓存从后端web服务器获取到的,加速为了客户端访问

2 . Squid的三种模式:

① 传统模式

需要客户端指向squid代理服务器,客户端能感知到squid代理服务器的存在修改的配置文件:squid.conf 设置 3128 端口、缓存和允许下载的大小

② 透明代理

客户端不需要配置,只要直接访问即可,服务端开启路转发,借助了防护墙规则及静态路由的方式,完成透明代理修改的配置文件:squid.conf 设置ip和 3128 端口需要设置iptables的流量重定向,将指定网卡网段的流量重定向到 3128 端口

③ 反向代理

作为类似于nginx服务器的反向代理功能,但自身不需要一个首页,基于ip:端口。权重的方式完成反向代理修改的配置文件:squid.conf 设置端口为 80服务端需要开启客户机的代理配置

3 . 对应Squid自身的管理/功能:

① ACL:主要做的是http_access(基于http协议,access访问)的允许和拒绝管理

使用 acl 配置项定义需要控制的条件;通过 http_access 配置项对已定义的列表做“允许”或“拒 绝”访问的控制。

② Sarg:日志分析功能,可以以天的方式指定将access_log中的内容输出到一个web页面中(借助了httpd)展示出来。

借助SARG日志分析工具实现;编写脚本并加入计划性任务可实现每日自动生成报告。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3