squid代理介绍----传统代理

Bertha 。 2023-07-15 13:14 147阅读 0赞

文章目录

    • 一、suqid的介绍
      • 1.1、squid是什么?
      • 1.2、squid的优势
      • 1.3、squid的作用
    • 二、squid的代理类型
    • 三、squid传统代理的部署
      • 3.1、 案例介绍
      • 3.2、部署过程
        • 1、在squid服务器部署squid服务
        • 2、修改配置文件,编写脚本优化服务启动项
        • 3、配置squid传统模式
        • 4、配置web服务器
        • 5、在客户端验证

一、suqid的介绍

1.1、squid是什么?

Squid 是一个高性能的http代理服务器和web缓存服务器,可以很好的实现HTTP和FTP以及DNS查询、SSL等应用的缓存代理。

  • 1、代理用户向web服务器请求数据并进行缓存,可以过滤流量帮助网络安全。
  • 2、可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。
  • 3、可以用在局域网中,使局域网用户通过代理上网。
  • 4、可以将数据缓存在内存中,同时也缓存DNS查询的结果,还支持非模块化的DNS查询,对失败的请求进行消极缓存。
  • 5、Squid支持SSL,支持ACL访问控制。

Web代理的工作机制

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

在这里插入图片描述

1.2、squid的优势

  • 1、提高客户端访问速度。
  • 2、隐蔽内部主机的ip地址。
  • 3、部署简单,可以实现访问控制。

1.3、squid的作用

  • 1、代理上网 (传统代理,透明代理)
  • 2、网站静态页面缓存加速(反向代理)

二、squid的代理类型

  • 1、传统代理又叫做正向代理,适用于Internet,需明确指定服务端。
  • 2、透明代理,客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理
  • 3、反向代理

三、squid传统代理的部署

传统代理模式

  • 客户端必须在自己的浏览器指定服务器的ip地址和监听的端口号,才能通过squid代理服务器**上网。

3.1、 案例介绍

如上图所示,在服务器B上构建Squid代理服务器,允许客户机指定squid代理服务器作为Web代理,访问网站服务器,但禁止通过代理下载超过10MB的文件,超过4MB的文件不进行缓存。

  • 环境介绍





























主机 系统 IP地址 主要软件
squid代理服务器 CentoS7.6 192.168.100.128 squid-3.5.27.tar.gz
WEB服务器 CentoS7.6 192.168.100.131 Apache
客户机 win10 192.168.100.3 自带的浏览器

先修改主机名,方便实验效果

  1. [root@localhost ~]# hostnamectl set-hostname squid
  2. [root@localhost ~]# su
  3. [root@squid ~]#
  4. [root@localhost ~]# hostnamectl set-hostname web
  5. [root@localhost ~]# su
  6. [root@web ~]#

3.2、部署过程

1、在squid服务器部署squid服务

  1. 1、解压squid的安装包
  2. tar zxvf squid-3.4.6.tar.gz -C /opt/
  3. cd /opt/squid-3.4.6/
  4. #先安装编译包
  5. yum -y install gcc gcc-c++ make pcre pcre-devel zlib-devel perl
  6. #配置编译
  7. ./configure --prefix=/usr/local/squid \ ##自定义安装路径
  8. --sysconfdir=/etc \ ##单独将配置文件修改到/etc目录下
  9. --enable-arp-acl \ ##可在ACL中设置通过MAC地址进行管理,防止客户端使用IP欺骗
  10. --enable-linux-netfilter \ ##使用内核过滤
  11. --enable-linux-tproxy \ ##支持透明模式
  12. --enable-async-io=100 \ ##异步I/O提升存储性能,值可修改
  13. --enable-err-language ="Simplify_Chinese" \ ##错误信息的提示语言
  14. --enable-underscore \ ##允许URL中有下划线
  15. --enable-poll \ ##使用 poll() 模式,提升性能
  16. --enable-gnuregex ##支持GNU正则表达式
  17. make && make install
  18. #创建链接文件,优化路径
  19. ln -s /usr/local/squid/sbin/* /usr/local/sbin/
  20. #创建程序用户、组
  21. useradd -M -s /sbin/nologin squid
  22. #改变目录属主
  23. chown -R squid.squid /usr/local/squid/var/

2、修改配置文件,编写脚本优化服务启动项

  1. vim /etc/squid.conf
  2. //增添下句并注释deny
  3. http_access allow all
  4. #http_access deny all
  5. //在端口port下增添两行代码
  6. http_port 3128
  7. cache_effective_user squid
  8. cache_effective_group squid
  9. coredump_dir /usr/local/squid/var/cache/squid
  10. squid -k parse #检查配置文件语法
  11. squid k rec ##重新加载配置文件
  12. squid -z #初始化缓存目录
  13. squid #启动服务
  14. netstat -ntap | grep 3128 #查看服务是否启动
  15. //编写优化脚本
  16. cd /etc/init.d/
  17. vim squid
  18. #!/bin/bash
  19. #chkconfig: 2345 90 25
  20. PID="/usr/local/squid/var/run/squid.pid"
  21. CONF="/etc/squid.conf"
  22. CMD="/usr/local/squid/sbin/squid"
  23. case "$1" in
  24. start)
  25. netstat -natp | grep squid &> /dev/null
  26. if [ $? -eq 0 ]
  27. then
  28. echo "squid is running"
  29. else
  30. echo "正在启动squid. . ."
  31. $CMD
  32. fi
  33. ;;
  34. stop)
  35. $CMD -k kill &> /dev/null
  36. rm -rf $PID &> /dev/null
  37. ;;
  38. status)
  39. [ -f $PID ] &> /dev/null
  40. if [ $? -eq 0 ]
  41. then
  42. netstat -natp | grep squid
  43. else
  44. echo "squid is not running"
  45. fi
  46. ;;
  47. restart)
  48. $0 stop &> /dev/null
  49. echo "正在关闭 squid...."
  50. $0 start &> /dev/null
  51. echo "正在启动 squid..."
  52. ;;
  53. reload)
  54. $CMD -k reconfigure
  55. ;;
  56. check)
  57. $CMD -k parse
  58. ;;
  59. *)
  60. echo "用法: $0 {start|stop|status|reload|check|restart}"
  61. ;;
  62. esac
  63. chmod +x squid
  64. chkconfig --add squid
  65. chkconfig --level 35 squid on #设置为开机自启动
  66. service squid stop
  67. service squid start
  68. netstat -ntap | grep 3128

3、配置squid传统模式

  1. vim /etc/squid.conf
  2. http_port 3128
  3. cache_mem 64 MB #内存空间大小
  4. reply_body_max_size 10 MB #允许下载最大文件大小
  5. maximum_object_size 4096 KB #允许保存缓存的空间最大对象大小
  6. http_access deny all #前面两行需要放在这行之上才生效
  7. iptables -F #清空防火墙规则
  8. iptables -t nat -F
  9. iptables -I INPUT -p tcp --dport 3218 -j ACCEPT
  10. #-I:插入input链 -p:协议 允许3128端口访问外网的WEB服务器
  11. //重新加载squid服务
  12. service squid reload
  13. netstat -ntap | grep 3128

4、配置web服务器

  1. //关闭防火墙
  2. systemctl stop firewalld
  3. setenforce 0
  4. //安装httpd
  5. yum install httpd -y
  6. echo "welcome to test web" > /var/www/html/index.html
  7. systemctl start httpd
  8. //进入目录下,设置测试内容
  9. cd /var/www/html/
  10. dd if=/dev/zero of=test1.tgz bs=1M count=11
  11. dd if=/dev/zero of=test2.tgz bs=1M count=2

5、在客户端验证

1、设置win10虚拟机的IP地址
在这里插入图片描述
2、设置IE浏览器——internet选项——连接——-局域网设置——勾选代理服务器,填写IP地址和端口号—IP:squid服务器地址 端口号为3128
在这里插入图片描述
验证:访问web服务器地址,并查看web服务器的访问日志access.log是代理服务器地址访问,
即squid代理服务器搭建成功。
在这里插入图片描述
注意:access.log日志在 /etc/httpd/logs/目录下
在这里插入图片描述
之前设置了允许下载最大的文件大小为10M,test2文件可以下载,test1过大超出范围,提示不能下载。
在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,147人围观)

还没有评论,来说两句吧...

相关阅读

    相关 squid 代理服务器

    squid代理服务器(包括正向代理服务器、反向代理服务器(cdn加速) squid调度器:负载均衡(缓解企业服务器的压力)) 1.什么是squid代理服务器? >

    相关 squid反向代理

    一.反向代理的概念   什么是反向代理呢?其实,反向代理也就是通常所说的WEB服务器加速,它是一种通过在繁忙的WEB服务器和Internet之间增加一个高速的 WE