CentOS 5.8部署Web缓存服务器(Squid+Memcached)(2)

四、安装配置memcached

1.安装libevent

tar -zxvf libevent-2.0.19-stable.tar.gz

cd libevent-2.0.19-stable

./configure --prefix=/usr/

make && make install

注:如果 libevent 不是安装在/usr目录下,那么需要把libevent-1.2a.so.1拷贝或链接到/usr/lib中,否则memcached无法正常加载。

2.安装memcached

tar -zxvf memcached-1.4.13.tar.gz

cd memcached-1.4.13

./configure --prefix=/usr/local/memcached --with-libevent=/usr/

make && make install

3.启动memcached

/usr/local/memcached/bin/memcached -l 192.168.0.149 -d -p 11211 -u nobody -m 128

4.配置memcached开机启动

vi /etc/rc.d/rc.local

在最后添加

/usr/local/memcached/bin/memcached -l 192.168.0.149 -d -p 11211 -u nobody -m 128 

五、安装配置squid

1.安装squid

tar -zxvf squid-3.1.20-20120610-r10455.tar.gz

cd squid-3.1.20-20120610-r10455

./configure --prefix=/usr/local/squid --enable-async-io=100 --disable-delay-pools --disable-mem-gen-trace --disable-useragent-log --enable-kill-parent-hack --disable-arp-acl --enable-epoll --disable-ident-lookups --enable-snmp --enable-large-cache-files --with-large-files

make && make install

2.创建squid相关目录

groupadd squid   #创建squid用户组

useradd -g squid -s /sbin/nologin squid   #创建squid用户,并加入到squid组里,不允许登录系统

chown -R squid /usr/local/squid/   #修改squid的安装目录所属用户为squid用户

mkdir -p /var/cache     #创建squid的第一个缓存目录

mkdir -p /var/squid    #创建squid的第二个缓存目录

chown squid.squid -R /var/cache /var/squid  #设置目录所有者

chmod -R 777 /var/cache /var/squid    #设置目录权限

3.配置squid

将squid的初始配置文件备份,我们要重新创建配置文件

mv /usr/local/squid/etc/squid.conf /usr/local/squid/etc/squid.conf.bak

vi /usr/local/squid/etc/squid.conf

cache_effective_user squid    #运行squid的用户 cache_effective_group squid   #运行squid的用户所在的组 visible_hostname squid1.cache.cn   #设定squid的主机名,如无此项squid将无法启动 http_port 80 accel vhost vport   #代理端口 icp_port 3130   #icp端口 # 配置其他缓存服务器,当squid1在其缓存中没有找到请求的资源时,通过ICP查询去其邻居中取得缓存 cache_peer 192.168.0.150 sibling 80 3130 # 后端web服务器配置,round-robin表示通过轮询方式将请求分发到其中一台web节点 cache_peer 192.168.0.108 parent 80 0 no-query originserver round-robin  name=webServer1 cache_peer 192.168.0.109 parent 80 0 no-query originserver round-robin  name=webServer2 cache_peer 192.168.1.115 parent 80 0 no-query originserver round-robin  name=webServer3 cache_peer_domain webServer1 webServer2 webServer3 .xuad.com  #根据通配域名xuad.com来进行转发 # 下面三行是配置访问控制的 acl localnet src 192.168.0.149 192.168.0.150   #配置同级代理服务器IP段 http_access allow all   #允许以上所有规则通过 icp_access allow localnet   #允许localnet规则通过 # URL中包含cgi-bin和以https:\\开头的都不缓存,asp、cgi、php、jsp等动态页面也不缓存 hierarchy_stoplist cgi-bin ? hierarchy_stoplist -i ^https:\\ ? acl QueryString urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi acl denyssl urlpath_regex -i ^https:\\ no_cache deny QueryString no_cache deny denyssl # 日志和缓存目录的设置 cache_log /usr/local/squid/var/logs/cache.log   #cache.log日志文件存放目录 access_log /usr/local/squid/var/logs/access.log squid   #access.log日志文件存放目录 cache_dir aufs /var/cache 1024 16 256   #设定缓存目录cache,目录容量最大1024M,16*256级子目录 cache_dir aufs /var/squid 3072 16 256   #设定缓存目录squid,目录容量最大3072M,16*256级子目录 cache_mem 128 MB    #squid用于缓存的内存容量 # 当缓存目录空间使用达到95%以上时,新的内容将取代旧的内容,直到空间又下降到90%才停止这一活动 cache_swap_low 90 cache_swap_high 95 # 设置存储策略 maximum_object_size 4096 KB    #能缓存的最大对象为4M maximum_object_size_in_memory 80 KB   #内存中缓存的最大对象80K ipcache_size 1024   #缓存DNS解析得到的IP,最大单个对象为1024K ipcache_low 90 ipcache_high 95 cache_replacement_policy lru   #缓存替换策略 memory_replacement_policy lru   #内存替换策略 memory_pools on   #开启内存池 memory_pools_limit 32 MB   #限制内存池大小为32MB  forwarded_for on   #开启转发 log_icp_queries off   #关闭icp查询日志  forward_timeout 20 seconds   #允许转发超时20秒 connect_timeout 30 seconds   #连接到其他机器的最大尝试时间 read_timeout 3 minutes   #允许读取超时3分钟 request_timeout 1 minutes    #允许返回超时1分钟 persistent_request_timeout 30 seconds   #允许持续连接超时30秒 client_lifetime 15 minutes   #客户端会话保持 shutdown_lifetime 5 seconds negative_ttl 30 seconds   #设置错误信息的生存时间 # 允许一个IP最大并发数为50 acl OverConnLimit maxconn 50 http_access deny OverConnLimit  client_persistent_connections off   #对客户端长连接KeepAlive这个参数的支持 server_persistent_connections on  # 开启服务端的KeepAlive,web端要开启KeepAlive,不然这里打开是没用的 tcp_recv_bufsize 65535 bytes   #TCP套接字接收缓冲区大小 half_closed_clients off  #当客户与squid的连接处于半关闭状态时,允许squid立即关闭连接  via on   #开启转发循环的检测 request_header_access via deny all   #避免由于两台squid的主机名一样而返回403错误 httpd_suppress_version_string off   #错误页面不显示squid的版本信息 ie_refresh off   #是否允许对旧版本的IE浏览器强制刷新页面 

注:shutdown_lifetime 5 seconds说明:当收到SIGTERM 或者 SIGHUP 信号后,squid将进入一种shutdown pending的模式,等待所有活动的套接字关闭。在过了shutdown_lifetime所定义的时间后,所有活动的用户都将收到一个超时信息。缺省值为30秒。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6b96d7b6705bbd1db257b6a6a40fbb44.html