服务器架构之性能扩展-第三章squid(4)

简介:

 第三章Squid代理服务器

3.1 Squid代理简介
代理技术是让代理服务器直接访问外部网络,然后将结果传给内部网络,代理服务器主要工作在应用层。Nat技术也可以实现代理访问,它是通过路由功能完成源地址与目的地址的转换,完成访问,主要工作在数据链路层/网络层和传输层等底层。
Nat的优点:工作在底层,透明代理,限制较少。缺点:地址转换技术,源地址和目标地址暴露,容易造成内部网络被攻击。
Squid代理服务器:可以完全做到内部外部分离,可以保障内部安全。缺点:完成的服务功能比较少,并且服务需要支持设置代理ip和端口功能。

 

3.1.1 Squid代理可以实现的功能:
1、提供对HTTP和FTP协议的代理服务
2、缓存代理的内容,提高客户端访问网站的速度,并且能够节约出口网络流量
3、对客户端地址进行访问控制,限制允许访问squid服务器的客户机
4、对目标地址进行访问控制,限制客户端允许访问的网站
5、根据时间进行访问控制,限定客户端可以使用代理服务的时间
3.1.2 缓存代理作用:
通过代理服务器访问外部网站,开启缓存池,缓存了部分的静态页面,如果下一个客户再来访问,代理服务器会去真是服务器核实页面是否更新了,然后决定是否更新缓存池,然后返回给客户。如果是全新页面,代理服务器会去真实服务器读取数据返回给客户。

 

3.2 Squid代理服务的种类
普通代理服务
即标准的,传统的代理服务;需要客户在浏览器中指定代理服务器的地址和端口,一般是为了实现员工访问外部网络的需要。
透明代理服务器
适用于企业的网关主机,客户端不需要指定服务器的地址和端口,通过iptables将客户的web请求交给代理服务器,减少了内部员工设置上的麻烦
反向代理服务
方向代理是实现外网访问内网的一种访问技术
3.3 安装squid服务
Rpm –qa|grep squid          //查看软件包是否安装

Yum install squid*           //yum安装squid

 

Vi /etc/squid/squid.conf        //修改配置文件,我们需要先删除原配置文件,在新建一个配置文件,不会发生误删,因为配置文件默认有两份一个是squid.conf和squid.conf.default

 

Service squid start          //启动squid服务,它会在/var/spool/squid/目录下,自动生成目录,16个一级目录,每个一级目录256个二级目录。

 

可以看到3128端口

 

Squid –k reconfig           //修改配置文件,不重启也可以动态加载
3.4 ACL访问控制原理
ACL(Access Control List),访问控制列表。是用来实现客户机的IP地址和请求的url/文件类型、访问时间、并发请求数进行限制的一种技术支持
它需要先定义然后指定限制类型,是拒绝还是允许。
格式:acl 列表名称 列表类型 列表内容    //定义列表
      http_access allow或deny 列表名       //限制列表
例如:acl all src 0.0.0.0/0.0.0.0
      http_access deny all
首先定义一个名叫all的acl语句,它的内容为所有类型的源地址,类型为拒绝。
常用的ACL列表类型

 

例如:
acl lan src 192.1681.10.1/24
http_access deny lan      //拒绝源地址为192.168.10.0这个子网的ip
acl block_domain dstdomain .qq.com.kaixin001.com

http_access deny block_domain   //拒绝目标域名为qq等的访问

acl work_hour time MTWHF 08:30-17:30
http_access allow work_hour //允许访问的时间段,周一到周五时间段
acl realfile urlpath_regex –I \.rmvb$ \.rm$
http_access deny realfile //禁止这种文件类型的访问,-i忽略大小写
访问控制类型的匹配顺序
没有规则时:拒绝所有客户端的访问请求
有规则但找不到匹配项时:将采用与最后一条相反的权限
3.5 squid代理的实现
内网客户机IP:192.168.10.2 
Squid服务器IP:192.168.10.1 内网ip,200.168.10.1 外网ip
Web服务器IP:200.168.10.2

 

1、          配置网卡

内网用vm1,squid服务器需要拥有两块网卡,内网连载vm1,外网vm2上,web server服务器的连接vm2网卡。分别配置ip和掩码。
Ping测试: //内网可到192.168.10.1,squid server可以通左右

 

 

2、          修改squid配置文件

Vi /etc/squid/squid.conf

 

 

首先配置文件设定服务的端口和ip,visible_hostname设置出问题的联系地址,innet定义来自这个网段的ip都可以,all定义来自所有的ip,reply设置允许资源大小10MB,设置规则允许innet列表, all为禁止列表。
3、配置web server,启动web服务,定义主页内容

4.测试,当没有指定代理时无法访问到外部web server,通过浏览器右边的设置按钮-》internet选项-》局域网设置-》输入ip和端口,确定

 

 

 

再次访问外部web serve

 

Squid会生成一些日志文件在/var/log/squid/目录下,其中Squid.out错误日志,store.log访问日志,cache.log缓存日志
 

 

Cat /varlog/httpd/access_log    //查看日志,看到代理服务器的ip

 

内网客户机IP:192.168.10.2 
Squid服务器IP:192.168.10.1 内网ip,200.168.10.1 外网ip
Web服务器IP:200.168.10.2

 

1、          配置实验环境,ping通。这里内部的pc机需要制定网关192.168.10.1才行。

2、修改配置文件,Transparent是透明的意思,开启透明。

 

3、增加iptables规则。“iptables –t nat –A PREROUTING –I eth0 –s 192.168.10.0、24 –p tcp –dport 80 –j REDIRECT –to 3128

Iptables规则解析:-t使用地址转换技术,-A prerouting是通过这条链,-i eth0进入的接口,-s来自的源,-p tcp协议,-dport目的端口,-j重定向 --to重定向到3128端口。
总的意思就是通过地址转换技术,通过prerouting通道,对于来自eth0的访客,源地址是192.168.10.0的子网的ip,访问目的端口是80的服务,我们重定向到3128端口,交给squid来代理。

 

4、测试。直接测试即可,不需要配置客户端。

 

外部客户机 IP 200.168.10.2 
Squid 服务器 IP 192.168.10.1  内网 ip 200.168.10.1  外网 ip
Web 服务器 IP 192.168.10.2

 

1、          配置网络环境,并可以ping通。这一次squid服务器外网使用vm1网卡,内网使用vm2网卡,web server使用vm2网卡。

2、          修改squid配置文件。

因为我们squid代理服务器没开启80端口,我们先虚拟一个80端口,这样外部的访问才不会被拒 绝。它内部服务可以实现集群的功能。并且squid服务器对于外网应该都是allow。

 

3、测试,访问代理服务器200.168.10.1,自动定向到内部的服务器。

 

实验四:配置squid反向代理虚拟主机
外部客户机IP:200.168.10.2 
Squid服务器IP:192.168.10.1 内网ip,200.168.10.1 外网ip
Web服务器IP:192.168.10.2
虚拟主机,就是一个web server架设多个域名的网站,实现一机多用。

1、          配置网络环境,可以ping通。

2、          修改squid配置文件。

配置文件,我们分别制定两个目的,指定网站名之后,并且允许所有外部ip的访问。

 

 

3、          配置虚拟主机

Vi /usr/local/apache/etc/httpd.conf 修改配置文件,然后到各自的网站目录建立不同的主页文件。

 

4、          修改pc机的hosts文件。

5、          访问测试,即可达到不同的域名访问到不同的网站。

我们可以通过tree 00(目录名)来查看某个缓存池里的缓存情况,可以查看到都是静态内容。Squid功能不仅有代理还有集群功能,所以越来越受到欢迎。

 

 

 

 



本文转自zsaisai 51CTO博客,原文链接:http://blog.51cto.com/3402313/966551

相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
24天前
|
负载均衡 测试技术 持续交付
高效后端开发实践:构建可扩展的微服务架构
在当今快速发展的互联网时代,后端开发扮演着至关重要的角色。本文将重点探讨如何构建可扩展的微服务架构,以及在后端开发中提高效率的一些实践方法。通过合理的架构设计和技术选型,我们可以更好地应对日益复杂的业务需求,实现高效可靠的后端系统。
|
1月前
|
存储 弹性计算 算法
倚天产品介绍|倚天ECS加速国密算法性能
倚天ECS是阿里云基于平头哥自研数据中心芯片倚天710推出arm架构实例,采用armv9架构,支持SM3/SM4指令,可以加速国密算法性能。本文基于OpenSSL 3.2和Tongsuo 实测对比了倚天ECS g8y实例和Intel g7 实例国密性能。为用户选择ECS提供参考。
|
24天前
|
监控 持续交付 API
构建高效可扩展的微服务架构
在当今快速迭代和竞争激烈的软件市场中,构建一个高效、可扩展且易于维护的后端系统变得尤为重要。微服务架构作为一种流行的分布式系统设计方式,允许开发者将应用程序划分为一系列小型、自治的服务,每个服务负责执行特定的业务功能。本文将探讨如何利用现代技术栈搭建一个符合这些要求的微服务架构,并讨论其潜在的挑战与解决方案。我们将涵盖服务划分策略、容器化、服务发现、API网关、持续集成/持续部署(CI/CD)以及监控和日志管理等关键主题,以帮助读者构建出既可靠又灵活的后端系统。
|
26天前
|
监控 Kubernetes 持续交付
构建高效可扩展的微服务架构:后端开发实践指南
在数字化转型的浪潮中,企业对软件系统的要求日益提高,追求快速响应市场变化、持续交付价值成为核心竞争力。微服务架构以其灵活性、模块化和独立部署的特点,成为解决复杂系统问题的有效途径。本文将深入探讨如何构建一个高效且可扩展的微服务架构,涵盖关键设计原则、技术选型及实践案例,为后端开发者提供一条清晰的指导路线,帮助其在不断变化的技术环境中保持竞争力。
127 3
|
1月前
|
编解码 弹性计算 Cloud Native
倚天使用|倚天ECS视频编解码之x264性能
在平头哥发布了首颗为云而生的 CPU 芯片倚天710之后,搭载倚天 710 的 ECS 实例表现出强劲的性能实力,在x264编解码场景下有着极高的性价比。
|
1月前
|
存储 弹性计算 关系型数据库
阿里云服务器ESSD云盘性能等级PL0、PL1、PL2、PL3区别,云盘性能级别PL知识点参考
在我们选择阿里云服务器系统盘和数据盘时,如果是选择ESSD云盘,还需要选择云盘的云盘性能级别PL,PL性能级别有PL3、PL2、PL1、PL0四个性能级别的云盘规格,如果是通过阿里云的活动来购买云服务器的话,由于系统盘默认一般为20G或40G容量,可选的PL性能级别通常只有PL0(单盘IOPS性能上限1万)和PL1(单盘IOPS性能上限5万)可选择,有的用户肯能并不清楚ESSD云盘的性能等级之间有何区别,单盘IOPS性能指的是什么,本文为大家介绍一下ESSD云盘的云盘性能级别PL3、PL2、PL1、PL0相关知识点。
阿里云服务器ESSD云盘性能等级PL0、PL1、PL2、PL3区别,云盘性能级别PL知识点参考
|
17天前
|
存储 缓存 监控
构建高效可扩展的后端服务架构
在当今互联网时代,构建高效可扩展的后端服务架构对于企业的业务发展至关重要。本文将探讨如何通过合理设计和优化后端服务架构,实现系统的高性能、高可用性和易扩展性,从而满足不断增长的业务需求和用户规模。
15 0
|
6天前
|
运维 监控 自动驾驶
构建可扩展的应用程序:Apollo与微服务架构的完美结合
构建可扩展的应用程序:Apollo与微服务架构的完美结合
27 10
|
16天前
|
负载均衡 网络协议 Java
构建高效可扩展的微服务架构:利用Spring Cloud实现服务发现与负载均衡
本文将探讨如何利用Spring Cloud技术实现微服务架构中的服务发现与负载均衡,通过注册中心来管理服务的注册与发现,并通过负载均衡策略实现请求的分发,从而构建高效可扩展的微服务系统。
|
30天前
|
弹性计算 小程序 开发者
阿里云服务器性能测评:25M带宽阿里云云服务器支持多少人访问?
在深入探讨25M带宽云服务器的性能时,我们首先要明确一个核心概念:带宽与服务器能够支持的同时访问量之间存在着直接的关联。那么,大家可能会好奇,带宽为25M的云服务器究竟能够支持多少用户同时访问呢?
119 0

热门文章

最新文章