文档章节

squid安装

泡海椒
 泡海椒
发布于 2016/06/19 17:05
字数 2503
阅读 14
收藏 1

squid介绍
 缓存服务器(cachehe server)即用来存储(内存,磁盘)用户访问的网页,图片文件等消息的专用服务器,这种服务器不仅可以使用户可以最快的得到他们希望想要的
 消息,并且可以大量的减少服务端网络传输的数据量,缓存服务器往往是代理服务器,对于网站的服务来说,缓存服务器和代理不可见的,即在用户看来所有的网站访问信息
 都来自其正在访问的服务器,而实际上可能是缓存服务器在提供访问的数据
 目前互联网常用的缓存服务器有:squid,varnish,nginx,ats
 web缓存相关概念
 cache命中
 cache命中是在cache server 每次从他的缓存里满足客户端请求http请求时发生,cache命中率,
 是所有客户端http请求命中的比例,web缓存典型的cache命中率在0.3-0.6之间,另外一个相似的度量
 单位叫做字节命中率,描述cache提供的数据容量,如何提高cache命中率?
 apache nginx 可以设置expires,cache-control缓存头
 动静分离,静态化,对静态走cdn
 mysql cache让缓存靠前
 404,4XX,5XX之类的错误页面。死链
 cache丢失
 cache丢失在cache server不能从他的缓存里满足客户端http请求发生,cache丢失的原因有多种
 当cache server第一次接受到对第一个新资源的请求时,就会产生一个cache丢失 如何解决第一次命中
预热或者预取
 a内部先请求访问,可以通过脚本实现
 b后端生成数据之后,统一推到前端cache server即预热
 2存储空间或者对象自身过期,cache server会清除这些缓存对象以释放空间给新的对象
 加大内存
 过期时间设置长一些
 参数设置,缓存参数设置大一些,最大缓存2M
 分资源缓存,1M,10M,100M分拆服务器,acl正则匹配不同pools
 3还有可能客户访问资源不可达,原始服务器会指示cache server怎么样处理用户响应,列如他会提示
 数据不能缓存,或者有限时间内才被重复使用等等
 cache确认
 当用户跟新了数据库或者存储服务器的时候,可以从业务角度主动调用接口清除该对象缓存指令
 squid是高性能代理服务器,squid支持FTP ,gopher和http协议和一般的
 代理缓存服务器不同,squid用一个单独的,非模块的 I/O驱动进程来处理客户端请求
 squid将数据缓存在内存和硬盘中,同时页缓存dns查询的结果 squid支持访问控制,由于使用了icp(轻量的internet缓存协议),squid支持实现层叠的代理阵列,从而最大
 限度的减少带宽
 squid cache是一个流行的代理服务器和web缓存服务器软件,squid服务器有相当大的用途
 1.用于放置在web服务器前面,缓存web服务器的相关数据,这样用户请求缓存服务器就可以直接返回给客户了,从而提升用户的访问体验,从另外一方面也可以减轻web,数据库,图片服务器的
 压力,称为反向代理服务
 2.用于放置在企业内部关键出网位置或者共享网络的前端,缓存内部上网用户的数据,内部存储系统和其他网络搜索数据,这样上网请求数据,就可以由缓存服务器返回给用户,而不需要上网了
 这种称为正向服务器
 3通过放在网络关键部位过滤网络流量和访问数据,提升整个网关的安全,列如可以监控及限制用户的上网行为可以和iptables配合作为办公室网关
 4.用作局域网通过代理上网
 透明代理
 所谓透明代理是相当于代理服务器而言,客户端不需要做
 网站什么时候需要用squidcdn
 静态扛不住,想节省成本,想提高访问速度
 a节省带宽及服务成本
 b提高用户体验
 c源站扛不住了
 haproxy和squid代理的区别
 haproxy专业代理
 squid缓存及代理功能
 haproxy做动态及静态的代理及其负载均衡
 squid分拆静态及动态进行缓存
 常见的网站架构
 动态数据->静态化-》cdn
 squid最重要的是内存,内存短缺会严重影响性能,因为所有的对象都尽可能被缓存到内存,这样才能更快的提升用户响应及其数据
 第二重要资源:磁盘
 磁盘也是另一个squid能够高效运行的重要因素,跟多的磁盘意味着更多的缓存目标和更快的命中率,,快速的磁盘也是必要的,列如利用ssd sas替代sad
 磁盘,除了使用raid外,可以指定多个磁盘路径缓存
 虚拟环境512M+
 磁盘8-16G+
 yum install openssl-devel
 http://www.squid-cache.org/Versions/v3/3.0/RELEASENOTES.html
 [root@localhost soft]# wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE20.tar.gz
./configure  --prefix=/usr/local/squid3.0 \
--enable-async-io=100 \
--with-pthreads \
--enable-storeio="aufs,diskd,ufs" \
--enable-removal-policiles="heap,lru" \
--enable-icmp \
--enable-delay-pools \
--enable-useragent-log \
--enable-referer-log \
--enable-kill-parent-hack \
--enable-cachemgr-hostname=localhost \
--enable-arp-acl \
--enable-default-err-language=English \
--enable-err-languages="Simplify_Chinese English" \
--disable-pool \
--disable-wccp \
--disable-wccpv2 \
--disable-ident-lookups \
--disable-internal-dns \
--enable-stacktrace \
--with-large-files \
--disable-mempools \
--with-filedescriptors=64000 \
--enable-ssl \
--enable-x-accelerator-vary \
--disable-snmp \
--with-aio \
--enable-linux-netfilter \
--enable-linux-tproxy
###--enable-basic-auth-helpers="NSCA" \
yum install gcc gcc-c++ gcc-g77
yum install gcc gcc++
make && make install
 一定要时间同步
  ln -s /usr/local/squid3.0/ /usr/local/squid
  [root@localhost etc]# cd /usr/local/squid/etc
[root@localhost etc]# useradd squid -s /sbin/nologin -M
 cache_effective_user squid
 cache_effective_group squid
cache_store_log /usr/local/squid3.0/var/logs/store.log
access_log /usr/local/squid3.0/var/logs/access.log squid
cache_dir ufs /usr/local/squid3.0/var/cache 100 16 256
cache_dir
http_port
vi visible_hostname
cache_mgr   goudingcheng@sina.com
act访问控制
acl workstation src 10.0.0.0/16 源地址匹配10.0.0.0/16网段
acl Bar src  10.0.0.0/16
acl Squid dst www.xx.com
acl http_ports port 80 8080 8000是或的关系
acl http_ports port 80
http_ports port 8000
http_ports port 8080
域名访问
正则访问匹配
method访问协议
acl uoload method PUT GET (PURGE squid里提供的)
acl处理协议
url 正则定义
urlpath_regex的acl定义
squid在搜索ACL元素时候使用或逻辑,在acl单值可以导致匹配
而应用访问规则恰好相反,对http——access和其他规则设置squid使用与逻辑
egrep -v "^#|^$" squid.conf

运行squid
[root@localhost squid]# sbin/squid -h
Usage: squid [-cdhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]
       -a port   Specify HTTP port number (default: 3128).
       -d level  Write debugging to stderr also.
       -f file   Use given config-file instead of
                 /usr/local/squid3.0/etc/squid.conf
       -h        Print help message.
       -k reconfigure|rotate|shutdown|interrupt|kill|debug|check|parse
                 Parse configuration file, then send signal to
                 running copy (except -k parse) and exit.
       -s | -l facility
                 Enable logging to syslog.
       -u port   Specify ICP port number (default: 3130), disable with 0.
       -v        Print version.
       -z        Create swap directories
       -C        Do not catch fatal signals.
       -D        Disable initial DNS tests.
       -F        Don't serve any requests until store is rebuilt.
       -N        No daemon mode.
       -R        Do not set REUSEADDR on port.
       -S        Double-check swap during rebuild.
       -X        Force full debugging.
       -Y        Only return UDP_HIT or UDP_MISS_NOFETCH during fast reload.

[root@localhost squid3.0]# sbin/squid -k parse
 把bin和sbin放入环境变量
 [root@localhost squid3.0]# chmod 777 /usr/local/squid3.0/var/
[root@localhost squid3.0]# sbin/squid -z
2016/06/11 00:50:26| Creating Swap Directories
2016/06/11 00:50:26| Making directories in /usr/local/squid3.0/var/cache/00
2016/06/11 00:50:26| Making directories in /usr/local/squid3.0/var/cache/01
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/02
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/03
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/04
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/05
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/06
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/07
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/08
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/09
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/0A
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/0B
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/0C
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/0D
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/0E
2016/06/11 00:50:27| Making directories in /usr/local/squid3.0/var/cache/0F
[root@localhost squid3.0]# sbin/squid -N -d1 若出现FATAL: ipcache_init: DNS name lookup tests failed.\安下面的运行
[root@localhost squid3.0]# sbin/squid -N -d1 -D 若出现06/11 02:59:52| Ready to serve requests.
代表成功了
[root@localhost squid3.0]# netstat -lntup|grep squid
tcp        0      0 0.0.0.0:3128                0.0.0.0:*                   LISTEN      38306/sbin/squid    
udp        0      0 0.0.0.0:3130                0.0.0.0:*                               38306/sbin/squid    
浏览器-》internate option ->lan ip为squid所在ip 端口是3128
[root@localhost etc]# egrep -v "^#|^$" squid.conf>>squid.conf.a
[root@localhost etc]# less squid.conf.a
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
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 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
acl sex url_regex -i ^http://.*baidu.*
http_access deny sex
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
htcp_access allow localnet
htcp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
 cache_dir ufs /usr/local/squid3.0/var/cache 100 16 256
access_log /usr/local/squid3.0/var/logs/access.log squid
 cache_log /usr/local/squid3.0/var/logs/cache.log
 cache_store_log /usr/local/squid3.0/var/logs/store.log
refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern (cgi-bin|\?)    0    0%    0
refresh_pattern .        0    20%    4320
cache_effective_user squid
cache_effective_group squid
visible_hostname www.pockbox.com
icp_port 3130
coredump_dir /usr/local/squid3.0/var/cache

[root@localhost squid3.0]# sbin/squid -k parse
2016/06/11 03:24:43| Processing Configuration File: /usr/local/squid3.0/etc/squid.conf (depth 0)
2016/06/11 03:24:43| Initializing https proxy context
[root@localhost squid3.0]# sbin/squid -k reconfigure
web
[root@localhost ~]# find / -name cachemgr.cgi
/root/soft/squid-3.0.STABLE20/tools/cachemgr.cgi
/usr/local/squid3.0/libexec/cachemgr.cgi
[root@localhost squid3.0]# yum install httpd -y
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

ScriptAlias “/squid” "/root/soft/squid-3.0.STABLE20/tools/cachemgr.cgi"
<Location "/squid">
order deny,allow
Deny  from all
Allow from all
</Location>
Listen 8080
[root@localhost ~]# service httpd start
http://192.168.88.146:8080/squid


 

© 著作权归作者所有

泡海椒
粉丝 11
博文 282
码字总数 288344
作品 0
成都
程序员
私信 提问

暂无文章

nginx访问日志/日志切割/静态文件过期时间/防盗链

Nginx访问日志主要记录部署在nginx上的网站访问数据,日志格式定义在nginx主配置文件中。 nginx主配置文件:/etc/nginx/nginx.conf 查看nginx主配置文件: ```markup [root@linux ~]# cat /e...

asnfuy
19分钟前
6
0
JS_高程4.变量,作用域和内存问题(2)执行环境及作用域

本文转载于:专业的前端网站➨JS_高程4.变量,作用域和内存问题(2)执行环境及作用域 1.执行环境:执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为,       每个执...

前端老手
23分钟前
4
0
手机迅雷下载的文件,电脑上找不到问题

不知道手机迅雷怎么做到的,手机迅雷下载的文件,手机上可以看的到 但连电脑后, 电脑上看不到文件 . 尝试了打开查看隐藏文件, 但没有效果 . 手机上查询文件权限 也是对的 . 可读,可写, 不隐藏 ...

ol_O_O_lo
25分钟前
4
0
python学习11:Python tuple元组详解

元组是 Python 中另一个重要的序列结构,和列表类似,也是由一系列按特定顺序排序的元素组成。和列表不同的是,列表可以任意操作元素,是可变序列;而元组是不可变序列,即元组中的元素不可以...

太空堡垒185
37分钟前
5
0
Java实现数据结构之线性结构

一、顺序表 顺序表本质是使用数组储存数组的一种数据结构,在计算机的储存中是连续的分配内存的。 下面是我自己使用java实现的简单顺序表结构 package list; public class MyArrayList<E> { ...

daxiongdi
39分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部