Squid 缓存代理服务器的完整配置
Squid 缓存代理服务器
Squid 的作用
1.通过缓存的方式为用户提供web访问加速
2.对用户的web访问进行过滤控制
缓存代理服务器又分为普通代理服务器,透明代理服务器,和反向代理服务器。
普通代理服务即指标准的,传统的代理服务,需要客户机在浏览器中指定代理服务器的地址,端口
透明代理服务器适合企业的网关主机,客户机不需要指定代理服务器地址,端口等信息,需要设置防火墙策略将客户机的web访问数据转交给代理服务器
反向代理服务为INTERNET用户访问网络内网站点提供缓存加速。提高访问效率。
squid 缓存代理服务的软件安装包名为 squid-2.6.STABLE21-3.el5(版本可能不同),默认监听端口为TCP 3128 默认访问日志文件 :/var/log/squid/access.log 进程名为squid , 主程序:/usr/sbin/squid ,配置目录:/etc/squid 主配置文件是 /etc/squid/squid.conf
我们已经对squid有了初步的认识,现在了解一下主配置文件squid.conf 的几个常用配置项
http_port 3128 此项设定默认监听端口,可以改变IP与监听端口
cache_mem 64 MB 设定缓存大小,一般情况下建议将物理内存的1/3划给它
maximum_object_size 4096 KB 定义最大缓存对象
reply_body_max_size 10240000 allow all 访问控制规则,对响应数据做限定,如果把这个值设定为0 就表示不做限定
access_log /var/log/squid/access.log squid 为squid做访问日志
visible_hostname proxy.test.com 可见主机名,默认配置文档中并没有定义,建议设定,否则影响squid启动
cache_dir ufs /var/spool/squid 1024 16 256
(缓存文件放置位置,ufs是文件系统类型,1024指定缓存目录大小, 16 缓存空间一级子目录个数, 256 指缓存空间的二级子目录个数)
cache_mgr root@test.com 定义服务器管理员邮箱
cache_effective_user squid
ache_effective_group squid 定义squid的UID GID
error_directory /usr/share/squid/errors/Simplify_Chinese 定义错误信息显示为中文,squid错误信息支持多种语言。可以在/usr/share/squid/errors 下查看
http_access allow localhost
http_access deny all 访问控制策略,
在没有设置任何规则时,将拒绝所有客户端的访问请求
有规则但是找不到相匹配的项时,将采取与最后一条规则相反的权限,即如果最后一条规则是allow 那么就拒绝客户端的请求,否则允许该请求
ACL(Access Control List )访问控制列表,可以从客户机的IP地址,请求访问的URL/域名/文件类型/访问时间/并发请求等方面进行控制
ACL的格式是
acl 列表名称 列表类型 列表内容
acl列表的使用在squid的官方网站上有详细的介绍,下面只介绍几种常用的acl列表类型
src 基于客户端IP地址做控制, 源ip
dst 基于访问目的IP做控制
srcdomain 基于域名的源地址解析
port 基于端口控制
proto 基于协议类型做控制
browser 对浏览器的做控制 # acl notfirefox browser MOZILIA
time 基于时间做控制,acl worktime time 10:00-23:59
acl working time 0:00-5:59
(注意:time时间控制时,前一个时间点要小于后一个时间点,若是要过0点设定,就仿写成上面例子,列表名称可以一样,acl匹配时取它们的并集)
maxconn 最大并发连接数
url_regex [-i ] 统一资源,针对url做正则表达式匹配 -i 不区分大小写
acl notpdf url_regex –i ^http.*\.pdf$
urlpath_regex [-i] 可不指定前端只对url 尾部做匹配
acl notpdf urlpath_regex –i .*\.pdf$
下面先来配置一个传统的代理服务
要求做一个普通代理,pc机能通过squid服务器访问外网192.168.0.254的web服务,但是在18:30-8:30之间内网用户不能上网,不能访问下载以.rmvb .mp3为后缀的文件,单个文件最大不能超过10M 代理端口为8080,错误提示呈现为中文,管理员邮箱为root@test.com, 内存大小为64M, 缓存目录大小为1024M, 并为squid配置可见主机名
1 安装squid软件包
#yum install squid
2 编辑/etc/squid/squid.conf
配置可见主机名
visible_hostname st.test.com
指定缓存目录大小
cache_dir ufs /var/spool/squid 1024 16 256
配置管理员邮箱
cache_mgr root@test.com
定义内存大小
cache_mem 64 MB
指定 缓存目录为1024M
cache_dir ufs /var/spool/squid 1024 16 256
定义错误信息显示
error directory /usr/share/squid/errors/Simplify_Chinese
定义最大单个文件大小
reply_body_max_size 10240000 allow all
修改监听端口
http_port 8080
最acl控制
3.现在 到内网pc机上将为浏览器配置代理服务,将ip指向192.168.0.72 端口指向8080
现在连上0.254 了测试一下你做的acl 控制吧
现在我们把题目修改一下,把上面的普通代理做成透明代理
1 修改squid.conf 配置文件,并重新加载该配置项
只需要修改一下监听端口
http port 192.168.10.9:8080 transparent
2.在squid主机上添加iptables 规则
iptables -t nat -A PREROUTING -i eth1 -s 192.168.10.0/24 -p tcp--dport 80 -j REDIRECT --to-ports 8080
3 客户机浏览器不需要指定代理服务器的地址,端口
做完透明代理访问也是一样的
下面再介绍一下反向代理
1.修改squid.conf 文件,并重启加载配置项
(cache_peer web 服务器 服务器类型 http端口 icp端口 可选项)
http_port 192.168.0.74:80 vhost 修改监听端口
cache_peer 192.168.10.2 parent 80 0 originserver weight=5 max-conn=30
cache_peer 192.168.10.3 parent 80 0 originserver weight=5 max-conn=30
cache_peer 192.168.10.4 parent 80 0 originserver weight=5 max-conn=30
cache_peer 192.168.10.5 parent 80 0 originserver weight=1 max-conn=8
2,好了现在可以验证了,在外网的客户机访问反向代理服务器192.168.0.74能够看到web提供的网页
(注意透明代理服务器和反向代理服务器不能配置在一台squid服务器上)
Squid 缓存代理服务器的完整配置的更多相关文章
- 31.Squid缓存代理服务器应用
Squid缓存代理服务器应用 Squid安装介绍 web缓存的工作机制 缓存网页对象,减少重复请求 squid 主要提供缓存加速.应用层过滤控制的功能. 工作机制 代替客户机问网站请求数据,从而可以隐 ...
- linux服务器---squid缓存
Squid缓存 代理服务器会在本地硬盘设置缓存,这样可以提高网络效率 1修改squid配置文件“/etc/squid/squid.conf”,参数“cache_dir_ufs”就是设置缓存目录的 [r ...
- Windows下配置Squid反向代理服务器
Squid是一款类Unix系统下非常流行的服务器软件,其最重要的功能就是在客户端和服务端之间建立缓存.因而Squid可以用作反向代理,部署多级缓存或者搭建CDN等,无论名称是什么,本质上都是一样的.目 ...
- 使用Squid做代理服务器,Squid单网卡透明代理配置详解(转)
使用Squid做代理服务器 说到代理服务器,我们最先想到的可能是一些专门的代理服务器网站,某些情况下,通过它们能加快访问互联网的速度.其实,在需要访问外部的局域网中,我们自己就能设置代理,把访问次数较 ...
- [Nginx]Nginx的基本配置与优化1(完整配置示例与虚拟主机配置)
---------------------------------------------------------------------------------------- 完整配置示例: [ n ...
- 搭建Squid反向代理服务器
好吧,更新个文章,有段时间没写技术博文了.今天就说说squid反向代理这个服务,当然,这是在Linux下配置完成的.说自己没偏见似乎不可能 了.大概是相对喜欢Linux而已.但我从不否认Windows ...
- centos7.6_x86_64使用Squid搭建代理服务器让windows上网
centos7.6_x86_64使用Squid搭建代理服务器让windows上网 windows机器很多站点访问受限,可以在没有限制外网的机器上面搭建代理服务器,其它电脑可以配置代理通过这台不受限制的 ...
- squid缓存代理
目录: 一.Squid 代理服务器 二.Squid 代理安装 三.搭建传统代理 四.搭建透明代理 五.ACL访问控制 六.Squid日志分析 七.反向代理 一.Squid 代理服务器Squid 主要提 ...
- Twemproxy 缓存代理服务器
Twemproxy 缓存代理服务器 Twemproxy 概述 Twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数.T ...
随机推荐
- [svc][jk][mem]linux 内存清理/释放命令
1.清理前内存使用情况 free -m 2.开始清理 echo 1 > /proc/sys/vm/drop_caches 3.清理后内存使用情况 free -m 4.完成! 查看内存条数命令: ...
- PHPCMS V9数据库表结构分析
PHPCMS V9可以轻松承载百万级的访问数据,最大的功臣就是PHPCMS良好的数据库结构,在数据库的设计方面,一定是下足了功夫. 一般网站的信息量离这个级别相差甚远,但是了解学习一下PHPCMS ...
- WatiN自动化测试
简介 WatiN - Watir的.NET版: http://watin.sourceforge.net/ Welcome at the WatiN (pronounced as What-in) w ...
- VS编译duilib项目时候的错误解决方法整理
@1:找不到Riched20.lib 用everything等软件搜索下磁盘.找到所在的文件夹加入到vs的库文件夹就可以.我得是C:\Program Files (x86)\Microsoft SDK ...
- jquery ui 与 easy ui同时引入 展示效果冲突的问题
jquery ui 由于在定位控件的时候跟easy UI 控件名相同,同时引入会导致冲突 如果需要两个都存在,可以去jquery ui下载定制版ui 脚本文件
- linux学习笔记4--命令mkdir
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. mkdir命令用来创建目录.该命令创建由dirname命名 ...
- LeetCode 145 Binary Tree Postorder Traversal(二叉树的兴许遍历)+(二叉树、迭代)
翻译 给定一个二叉树.返回其兴许遍历的节点的值. 比如: 给定二叉树为 {1. #, 2, 3} 1 \ 2 / 3 返回 [3, 2, 1] 备注:用递归是微不足道的,你能够用迭代来完毕它吗? 原文 ...
- gcc 遇到过的语法问题
1.在ubuntu 12.04 环境下,在/etc/ld.so.conf.d/目录里添加某个so库的配置路径,比如 /home/myself/abc/lib/ 执行 sudo ldconfig
- android最佳实践的建议(翻译自android-best-practices)
Best practices in Android development Use Gradle and its recommended project structure 使用Gradle和其推荐的 ...
- pl/sql 实例精解 06
1. 简单循环 1: LOOP 2: statement1; 3: statement2; 4: EXIT WHEN condition; 5: END LOOP; 6: statement3; 也可 ...