4、ACL访问控制
1)禁止某IP地址主机上网
acl nolink src 192.168.90.9
http_access deny nolink
2)禁止某网段在某时间段上网
acl nolink src 192.168.1.0/24
acl nowang time MTWHF 9:00-11:30
http_access deny nolink nowang
3)禁止所有人访问某网站(精确匹配)
acl nourl dstdomain -i
http_access deny nourl
4)禁止所有人访问某些网站(含有关键字的都会过虑)
acl nourl url_regex -i taobao.com
http_access deny nourl
5)禁止下载某类型的文件
acl nof urlpath_regex -i .avi$ .mkv$
http_access deny nof
6)禁止访问某类型的网站
acl nop url_regex -i ^emule:// ^thunder
http_access deny nop
5、测试透明代理
内网web服务器指定内网网关
vi /etc/sysconfig/network-scripts/ifcfg-ens33
外网web浏览器指定外网网关
打开win7浏览器模拟外网客户端
访问192.168.80.110 //直接访问内网主机
四、搭建Squid反向代理服务器
1、系统环境
增加一台web服务器对应的IP地址为:192.168.80.120
2、修改配置文件(反向代理)
vi /etc/squid.conf
http_port 192.168.80.100:80 accel vhost vport
cache_peer 192.168.80.110 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.80.120 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2
service squid stop //服务重启 service squid start
3、Web访问代理服务器
1、安装sarg工具
yum install httpd gd gd-devel pcre-devel -y //squid服务器安装apache和对应的库文件 tar xf sarg-2.3.11.tar.gz //解压源码包 cd sarg-2.3.11/ ./configure \ //安装前的配置 --prefix=/usr/local/sarg \ --sysconfdir=/etc/sarg \ --enable-extraprotection make && make install //编译安装2、相关配置
vi /etc/sarg/sarg.conf //修改日志分析配置文件
7 access_log /usr/local/squid/var/logs/access.log //squid的访问日志位置
25 title "Squid User Access Reports" //网页标题
120 output_dir /var/www/html/squid-reports //分析报告的存放位置
178 user_ip no //不使用IP代替用户ID
184 topuser_sort_field BYTES reverse //升序排列
190 user_sort_field BYTES reverse
206 exclude_hosts /usr/local/sarg/noreport //设置不生成报告的主机
257 overwrite_report no
289 mail_utility mailx //指定发邮件命令
434 charset UTF-8
518 weekdays 0-6 //指定top排序星期周期
523 hours 7-12,14,16,18-20 //指定top排序时间周期
633 www_document_root /var/www/html //网页根目录
3、验证访问
:81/squid-reports/
注意:由于上诉squid做代理80端口被占用,因此将squid服务器httpd对应的端口改为81
六、Varnish与Nginx缓存服务器1、高性能缓存服务器Varnish
Varnish是一款高性能的、开源的方向代理服务器和缓存器。挪威最大的在线报纸Verdens Gang使用了3台Varnish代替了原来的12台Squid,性能更好!
Varnish与Squid的对比如下:
(1)优点
Varnish具有更好的稳定性、更快的访问速度、更多的并发连接支持数,可以通过管理端口来管理缓存。
(2)缺点
1)在高并发状态下,Varnish消耗更多的CPU、I/O和内存资源。
2)Varnish进程一旦挂起、崩溃或者重启,缓存的数据会从内存中释放,此时所有的请求都会转发到后端服务器,给后端服务器造成很大压力。
2、轻量级缓存服务器Nginx
Nginx支持类似Squid的缓存功能,把URL以及相关信息当成key,用MD5编码Hash后把数据文件保存在硬盘上。
Nginx只能为只当的URL或者状态码设置过期时间,并不支持类似Squid的purge命令来手动清除指定的缓存页面。可以通过第三方的ngx_cache_purge来清除指定的URL缓存。
Nginx的缓存加速功能是由proxy_cache和fastcgi_cache两个功能模块完成的。
Nginx缓存加速的特点如下:
1)缓存功能十分稳点,运行速度不逊于Squid。
2)对多核CPU的利用率比其他的开源软件要好。
3)支持高并发请求数,能同时承受更多的访问请求。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx