Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。

以下介绍它的第一个作用:正向代理

正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理

# yum install squid -y //yum安装squid

# vim /etc/sysctl.conf //修改开启路由转发功能

# grep -i ip_forward /etc/sysctl.conf

net.ipv4.ip_forward= 1

# sysctl -p //使路由转发功能生效

net.ipv4.ip_forward = 1

net.ipv4.conf.default.rp_filter= 1

... ...

#

配置文件修改

# vim /etc/squid/squid.conf //修改squid主配置文件

# grep -vE '^#|^$'/etc/squid/squid.conf

acl manager proto cache_object

acl localhost src 127.0.0.1/32::1

acl to_localhost dst 127.0.0.0/80.0.0.0/32 ::1

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network

acl localnet src 172.16.0.0/12 # RFC1918 possible internal network

acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

acl localnet src fc00::/7 # RFC 4193 local private network range

acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged)machines

acl host1 src192.168.0.0/24 # 自定义主机

acl SSL_ports port 443

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

http_access allow managerlocalhost

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT!SSL_ports

http_accessallow host1 #允许自定义主机访问

http_access allow localnet

http_access allow localhost

http_access deny all

http_port 8080 #代理端口,习惯上使用8080端口

hierarchy_stoplist cgi-bin ?

cache_dir ufs/var/spool/squid 100 16 256

#ufs为缓存存储类型,在该目录下使用的缓冲值为100MB,允许在“/var/spool/squid”下创建的第一级子目录数为16,每个第一级子目录下可以创建的第二级子目录数量为256

coredump_dir /var/spool/squid

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern -i(/cgi-bin/|\?) 0 0% 0

refresh_pattern . 0 20% 4320

//添加修改以上红色部分就能搭建简单的squid正向代理了

//注:cache_men不能超过cache_dir中的一个数值,否则会出现如下报错,

停止 squid:2012/08/21 16:05:46| WARNING cache_mem is larger than totaldisk cache space!

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

2012/08/21 15:29:37| WARNINGcache_mem is larger than total disk cache space!

2012/08/21 15:29:37| CreatingSwap Directories //查看swap缓存目录

2012/08/21 15:29:37|/var/spool/squid exists

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/00

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/01

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/02

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/03

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/04

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/05

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/06

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/07

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/08

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/09

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0A

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0B

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0C

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0D

2012/08/21 15:29:37| Makingdirectories in /var/spool/squid/0E

2012/08/21 15:29:37| Making directoriesin /var/spool/squid/0F

[root@localhost ~]#

# /etc/init.d/squid start

客户机浏览器配置代理

打开浏览器internet选项选择连接中的局域网设置设置:

添加squid主机IP以及代理端口:

# tail -f /var/log/squid/access.log //查看代理客户机访问记录

1345532445.463 166 192.168.0.229 TCP_MISS/200 2126 GEThttp://news.baidu.com/z/resource/bg2.png - DIRECT/123.125.114.18 p_w_picpath/png

1345532445.467 3193 192.168.0.229 TCP_MISS/200 188665 GEThttp://eiv.baidu.com/mapm2/jingyi/120705_jj_01/984bg.jpg - DIRECT/123.125.115.43p_w_picpath/jpeg

1345532445.869 218 192.168.0.229 TCP_MISS/200 423 GEThttp://news.baidu.com/c_n? - DIRECT/123.125.114.18 text/html

1345532446.055 170 192.168.0.229 TCP_MISS/200 1020 GEThttp://news.baidu.com/nocache/mp/b.jpg? - DIRECT/123.125.114.18 p_w_picpath/jpeg

1345532446.303 515 192.168.0.229 TCP_MISS/200 3653 GEThttp://t3.baidu.com/it/u=http%3A%2F%2Fwww.cnr.cn%2Fgundong%2F201208%2FW020120821245142735909.jpg&fm=30- DIRECT/61.135.185.26 p_w_picpath/jpeg

查看命中率

# squidclient -p 8080 mgr:info

HTTP/1.0 200 OK

Server: squid/3.1.10

Mime-Version: 1.0

Date: Tue, 21 Aug 2012 07:12:28GMT

Content-Type: text/plain

Expires: Tue, 21 Aug 201207:12:28 GMT

Last-Modified: Tue, 21 Aug 201207:12:28 GMT

X-Cache: MISS fromlocalhost.localdomain

X-Cache-Lookup: MISS fromlocalhost.localdomain:8080

Via: 1.0 localhost.localdomain(squid/3.1.10)

Connection: close

Squid Object Cache: Version3.1.10

Start Time: Tue, 21 Aug 2012 06:59:03 GMT

Current Time: Tue, 21 Aug 2012 07:12:28 GMT

Connection information for squid:

Numberof clients accessing cache: 2

Numberof HTTP requests received: 130

Numberof ICP messages received: 0

Numberof ICP messages sent: 0

Numberof queued ICP replies: 0

Numberof HTCP messages received: 0

Numberof HTCP messages sent: 0

Requestfailure ratio: 0.01

AverageHTTP requests per minute since start: 9.7

AverageICP messages per minute since start: 0.0

Selectloop called: 382483 times, 2.107 ms avg

... ...

#

取得squid运行状态信息: squidclient -p 8080 mgr:info

取得squid内存使用情况: squidclient -p 80mgr:mem

取得squid的磁盘使用情况: squidclient -p 8080 mgr:diskd

查看更多:squidclient -p 8080 mgr:

acl规则限制配置

# deny news #过滤所有url中含有news的网站

acl newsurl_regex -i news

#过滤URL中出现news关键字

http_accessdeny news

# deny video #过滤主流的视频网站

acl videodstdomain .youku.com .56.com .tudou.com .qiyi.com

http_accessdeny video

acl worktimetime MTWHF 9:00-12:00

http_accessdeny !worktime #9:00-12:00这段时间外不可以访问

加入以上配置到配置文件后,刷新squid服务即可

time ACL允许你控制基于时间的访问,时间为每天中的具体时间,和每周中的每天。日期以单字母来表示,见如下表。时间以24小时制来表示。[星期]:可以使用这些关键字M(Monday星期一)、T(Tuesday星期二)、W(Wednesday星期三)、H(Thursday星期四)、F(Friday星期五)、A(Saturday星期六)和S(Sunday星期天) [时间段]:可以表示为10:00-20:00。例如:

aclworktime time MTWHF 9:00-18:00周一到周五的9点到18点

访问控制应用实例

1) 禁止IP地址为192.168.16.200的客户机上网。

acl badclientip1 src192.168.16.200

http_access deny badclientip1

2) 禁止192.168.1.0这个子网里所有的客户机上网。

acl badclientnet1 src192.168.1.0/255.255.255.0

http_access denybadclientnet1

3) 禁止用户访问IP地址为210.21.118.68的网站。

acl badsrvip1 dst210.21.118.68

http_access deny badsrvip1

4) 禁止用户访问域名为www.163.com的网站。

acl baddomain1 dstdomain -iwww.163.com

http_access deny baddomain1

5) 禁止用户访问域名包含有163.com的网站。

acl badurl1 url_regex -i163.com

http_access deny badurl1

6) 禁止用户访问域名包含有sex关键字的URL。

acl badurl2 url_regex -i sex

http_access deny badurl2

7) 限制IP地址为192.168.16.200的客户机并发最大连接数为5。

acl clientip1 src192.168.16.200 acl conn5 maxconn 5 http_access deny client1 conn1

8) 禁止192.168.2.0这个子网里所有的客户机在周一到周五的9:00到18:00上网。

acl clientnet1 src192.168.2.0/255.255.255.0 acl worktime time MTWHF 9:00-18:00 http_access denyclientnet1 worktime

9) 禁止客户机下载*.mp3、*.exe、*.zip和*.rar类型的文件。

acl badfile1 urlpath_regex -i\.mp3$ \.exe$ \.zip$ \.rar$ http_access deny badfile1

10) 禁止QQ通过squid代理上网。

acl qq url_regex -itencent.com http_access deny qq

转载于:https://blog.51cto.com/kumu1988/1086206

RHEL6下squid代理之正向代理相关推荐

  1. 一文简单理解反向代理和正向代理模型

    正向代理和反向代理 正向代理和反向代理 1.代理(Proxy) 2.反向代理和正向代理 参考 正向代理和反向代理 1.代理(Proxy) 引出代理之前,首先介绍C/S架构,也即是Client-Serv ...

  2. 反向代理和正向代理的概念

    反向代理和正向代理的概念 什么是反向代理? 帮助用户请求资源;用户不清楚访问的服务器地址信息.服务器清楚是谁访问的服务器.并能获取用户信息 优点:提高了内部服务器的安全,加快了对内部服务器的访问速度, ...

  3. 反向代理和正向代理之间的区别

    什么是反向代理?反向代理其实基本思想非常的简单,其实就是位于用户和目标服务器之间,当然对于用户来说,反向代理其实就是相当于目标服务器,用户可以直接通过代理服务器获得目标服务器的资源.那么反向代理和正向 ...

  4. 反向代理和正向代理以及实例说明

    1:反向代理需求 1.1:为什么需要反向代理?(如何实现项目中的图片回显) 需求:当完成文件上传时,业务返回页面的是虚拟地址路径 url地址: http://image.jt.com/2020/09/ ...

  5. 什么是nginx?什么是nginx的反向代理和正向代理又是什么?nginx反向代理的作用?

    1. nginx 1.1 nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄 ...

  6. 图解反向代理和正向代理。

    反向代理和正向代理都是在客户机和服务器传递数据中很重要的部分. 1.正向代理 正向代理的一个很经典的案例就是 ***. 当信息的发起者无法直接将信息递给信息的接受者时,发起者则不得不通过正向代理来作为 ...

  7. nginx反向代理和正向代理

    1.正向代理: 正向代理是指客户端与目标服务器之间增加一个代理服务器,客户端直接访问代理服务器,在由代理服务器访问目标服务器并返回客户端并返回 .这个过程当中客户端需要知道代理服务器地址,并配置连接. ...

  8. 反向代理,正向代理,网关

    反向代理,正向代理,网关 正向代理与反向代理,正向与反向是如何区分的? 反向代理在系统架构中的应用场景: 正向代理与反向代理,正向与反向是如何区分的? 正向与反向的目标是客户端,是对于客户端来说是正向 ...

  9. 2、正向代理和反向代理(正向代理(客户端),反向代理(服务器))

    正向代理和反向代理(正向代理(客户端),反向代理(服务器)) 1.正向代理:(代理客户端) 说个例子(访问外网):我们的客户端先去请求香港的服务(香港的服务器可以访问外网(跳板)),我们再让香港的服务 ...

  10. nginx和gunicorn相关,反向代理和正向代理区别,静态资源和动态资源

    nginx官网:http://nginx.org/ nginx github:https://github.com/nginx/nginx 反向代理和正向代理区别:https://www.cnblog ...

最新文章

  1. 阅读Book: MultiObjective using Evolutionary Algorithms (1) --prologue 单目标和多目标的不同
  2. C++实现用堆求最小的k个数
  3. Android Parcelable 源码解析
  4. OVS datapath包处理流程(二十)
  5. 黑客技术的网站(❤️可以自学,建议收藏❤️)
  6. django-学生列表的删除操作
  7. Matplotlib 中文用户指南 2 安装
  8. php图片缩放比例缩放,php图片等比例放大与缩小的方法举例
  9. cad直线和圆弧倒角不相切_建议收藏:史上最全CAD快捷键大全
  10. Echarts美国地图
  11. 企业管理中使用凌云仓库管理软件免费版的优势
  12. NLP(五十二)抽取式词义消歧(WSD)
  13. oa怎么修改服务器地址,致远oa如何设置服务器地址
  14. 【自然语言处理】一篇文章入门分词(Tokenization)
  15. java 刻度尺_用java代码如何实现画坐标刻度尺图
  16. 千锋培训学python怎么样
  17. 安卓微信分享图标不显示的问题
  18. Predefined character classes
  19. 北京时间与UTC时间转换
  20. cocos2d-x ListView滚动与Button点击事件

热门文章

  1. Redhat EL 5.3上安装Cacti(4)- 编译安装rrdtool及安装配置snmp
  2. 依赖注入容器Unity Application Block快速入门
  3. 云网融合 — 基于 SD-DCI 的云间网络融合
  4. DPDK — 安装部署(CentOS 7)
  5. DPDK — 架构解析
  6. CodeBlocks主题和字体
  7. Keil 出现Debug Error! DAMAGE:after Normal block
  8. Cocos坐标之convertToNodeSpace、convertToWorldSpace、convertToNodeSpaceAR、convertToWorldSpaceAR区别和用法...
  9. window系统安装redis步骤
  10. 231. Power of Two