文档章节

系统原理分析架构-四-squid(简介及正向代理)

tantexian
 tantexian
发布于 2016/02/29 22:36
字数 1450
阅读 57
收藏 0

感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!

如有转载,请保留源作者博客信息。

Better Me的博客blog.csdn.net/tantexian

如需交流,欢迎大家博客留言。


一、squid简介
Squid Cache (简称为 Squid )是 HTTP 代理服务器 软件。Squid用途广泛的,可以作为 缓存服务器 代理用户向web服务器请求数据并进行缓存, 可以过滤流量帮助网络安全,也可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。 还也可以用在局域网中,使局域网用户通过代理上网。

Squid将数据元缓存在内存中,同时也缓存 DNS查寻的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持 访问控制。由于使用了ICP,Squid能够实现重叠的代理阵列,从而最大限度的节约带宽。
Squid由一个主要的服务程序Squid,一个DNS查询程序 dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当Squid启动以后,它可以派生出指定数目的 dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。
Squid的另一个优越性在于它使用 访问控制清单(ACL)和访问权限清单(ARL)。访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。

二、squid应用
    squid即可以作为正向代理服务器也可以作为反向代理服务器。更多关于代理服务器分类,请参考博文: 系统原理分析架构-三--代理服务器简介及分类 (2014-10-15 19:54)

    注:本来此文是讲解squid作为反向代理的页面缓存功能的,但是由于squid常用的还有正向代理功能,因此也一并讲解,后续文章中也会以这种思路进行讲解,这样通过对比更能加深对整个squid的理解。

1、squid正向代理服务器
    举个简单的例子,假若公司内网机器正常来说都不让访问外网。但是由于工作需要,为研发同事配备了一台统一能够访问外网查看资料的机器。这样每次大家有需要上外网则需要争抢唯一一台外网主机。这种情况在大多数公司存在。聪明的程序员肯定不肯罢休,怎么也要把自己机器捣鼓出能上外网。这时候squid正向代理就能派上用场了。

注:正向代理还包括透明代理,本专题。

2、使用squid正向代理访问外网:
(1)环境:
假设windows机器不能访问外网,能访问内网。(windows7)
有一台linux服务器,能访问外网,且windows机器能够与该机器互相访问。(centos 6.5 mini版,ip:192.168.10.36)
(2)node36上安装squid:
#  yum install squid #安装squid

#  vim /etc/sysctl.conf#开启路由转发功能
net.ipv4.ip_forward设置为1

#  vi /etc/sysconfig/network

#  sysctl -p#路由强制生效

# service network restart

配置squid:
#  vim /etc/squid/squid.conf

#http_port指令告诉squid在哪个端口侦听HTTP请求。默认端口是3128

#缓存目录的设置,可以设置多个缓存目录,语法为:<cache_dir> <aufs|ufs> <目录所在> <MBytes大小> <dir1> <dir2>


#设置acl访问控制表
以允许192.168.10.0/24网段内所有客户机访问代理服务器为示例:
配置文件中添加acl my_allow_net src 192.168.10.0/24

配置文件中添加acl my_allow_net src 192.168.10.0/24
(注:该记录一定要添在deny all之前,应该配置文件读到deny all则后面的配置文件就不生效)


# squid -k parse

假如你看不到输出,配置文件有效,你能继续后面的步骤。然而,如果配置文件包含错误,squid会告诉你

# squid -z #初始化缓存空间

# /etc/init.d/squid restart#重启squid生效,起送squid时间比较长,耐心等待


(3)windows下测试代理服务器:

浏览器访问baidu.com

后台日志:
tailf /var/log/squid/access.log
普通正向代理成功。

3、高级功能配置项
#停止squid
最安全的停止squid的方法是使用squid -k shutdown命令:
# squid -k shutdown

#重配置运行中的squid进程,重配置运行中的squid最好的方法是使用squid -k reconfigure命令:
# squid -k reconfigure


#禁止来自某些IP地址的访问,在squid配置文件中添加以下acl名称及访问规则,并重新加载配置文件
acl deny_net src 192.168.20.6/32
http_access deny deny_net 

#禁止在某些时段访问
acl Working_times MTWHF 08:00-17:00
http_access allow Working_times 
http_access deny !Working_times 

# 禁止某个代理客户建立过多连接 
acl MaxConnLimit maxconn 4 
http_access deny MaxConnLimit 

4、关于squid的透明代理
透明代理业属于正向代理的一种,不同的是普通代理需要在客户端(浏览器局域网代理服务器)设置代理IP和PORT,而透明代理再通过 NAT功能,将特定的数据请求映射到代理服务器上。
ex:#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports 3128
透明代理不再过多讲解,有兴趣请自行查阅相关资料。

© 著作权归作者所有

共有 人打赏支持
tantexian
粉丝 211
博文 515
码字总数 733589
作品 0
成都
架构师
私信 提问
系统原理分析架构-五-squid(反代理即web缓存服务器)

感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正! 如有转载,请保留源作者博客信息。 Better Me的博客:blog.csdn.net/tantexian 如需交流,欢迎大...

tantexian
2016/02/29
25
0
CentOS6 Squid代理服务器的安装与配置

一、简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要...

linuxprobe16
2016/11/16
19
0
CentOS 6.4下Squid代理服务器的安装与配置

一、简介 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。 Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要...

tlanyan
2014/09/30
0
0
squid 代理和缓存

于2017.04.21 从新浪博客搬迁过来 ---------------------------------------------------------------- 在现在的企业中squid 作为代理服务器和缓存服务器使用,在小型的环境中squid可以作为代...

Aloneforyou
2017/04/21
0
0
squid正向代理和反向代理服务器搭建

squid是比较知名的代理软件,它不仅可以跑在Linux上还可以跑在Windows和UNIX上,它的技术已经非常成熟。目前使用squid的用户也十分广泛。squid与Linux下其他的代理软件如Apache、socks、TIS...

Rachy1989
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MaxCompute,基于Serverless的高可用大数据服务

摘要:2019年1月18日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学,本次技术沙龙上,阿里巴巴高级技术专家吴永明为大家...

zhaowei121
24分钟前
4
0
记录一下安装使用MySql8.0以及允许Navicat11远程连接

记录一下安装使用MySql8.0以及允许Navicat11远程连接 2018年05月11日 23:51:39 爱不离此 阅读数:4455 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_352...

linjin200
25分钟前
2
0
redis结合springboot 无法注入redisTemplate问题

redis结合springboot 无法注入redisTemplate问题 报错: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.......

BraveLN
27分钟前
2
0
Redis缓存雪崩、缓存穿透、热点Key解决方案和分析

缓存穿透 缓存系统,按照KEY去查询VALUE,当KEY对应的VALUE一定不存在的时候并对KEY并发请求量很大的时候,就会对后端造成很大的压力。 (查询一个必然不存在的数据。比如文章表,查询一个不存...

watermelon11
28分钟前
2
0
ThinkSNS + 后端2019年1月更新播报

社交软件系统ThinkSNS+界面一览图 研发发布版本号:2.1.5 和 2.2.2 更新发布时间:2019年1月29日 社交系统ThinkSNS+后端本次主要更新内容:搜索地区体验优化、优化收藏页面排版、修正读取兑换...

ThinkSNS官方帐号
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部