Home >Database >Mysql Tutorial >squid3加速web服务器

squid3加速web服务器

WBOY
WBOYOriginal
2016-06-07 15:05:351301browse

测试环境: 操作系统 :centos5.0 Web 服务器 :apache2 + tomcat 5.5 Jdk : j2se 1.5.5 1. 下载 squid-3.0.STABLE9.tar.gz (测试时最新的版本)。 http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE9.tar.gz 2. 添加用户及组 # useradd squid -M

测试环境:

     操作系统:centos 5.0  

     Web 服务器: apache2 + tomcat 5.5

     Jdk  : j2se 1.5.5

 

1. 下载squid-3.0.STABLE9.tar.gz (测试时最新的版本)。

http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE9.tar.gz

2. 添加用户及组

# useradd squid -M -c "Squid user" -d /dev/null -s /sbin/nologin

3. 解压并编译安装

tar squid-3.0.STABLE9.tar.gz

cd squid-3.0.STABLE9

./configure --prefix=/data/squid3 --disable-carp --with-aufs-threads=32 --with-pthreads --enable-storeio='ufs,aufs, null' --enable-disk-io='AIO,Blocking' --enable-removal-policies='heap,lru'  --disable-wccp --enable-kill-parent-hack --disable-snmp --disable-poll --disable-select --enable-auth=basic --with-aio  --disable-ident-lookup --with-filedescriptors=65536 

编译参数不做详细介绍请查相关文档

Make

make install

安装完毕。

 

4. 配置

可能需要创建一些文件 这些都是配置文件中需要调用的(这个要注意文件的属主和权限)

1) [root@www ~]#cd /data/squid3/var/logs/

2) [root@www ~]#touch cache.log

3) [root@www ~]#chmod 755 cache.log

4) [root@www ~]#chown squid:squid cache.log

5) [root@www ~]#touch page_zs_access_log

6) [root@www ~]#chmod 755 page_zs_access_log

7) [root@www ~]#chown squid:squid page_zs_access_log

 

8) [root@www ~]#cd /data/squid3/etc/

9) 配置squid 配置文件 squid.conf

[root@www ~]# vi squid.conf                 (192.168.3.11 服务器ip 地址)

visible_hostname www.test.com

http_port 80 vhost vport

cache_mem 512 MB

maximum_object_size_in_memory 2048 KB

memory_replacement_policy lru

cache_dir ufs /tmp 512 16 256

max_open_disk_fds 0

minimum_object_size 0 KB

maximum_object_size 32768 KB

logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %h" "%{User-Agent}>h" %Ss:%Sh

access_log /data/squid3/var/logs/page_zs_access_log combined

pid_filename/data/squid3/var/logs/squid.pid

cache_store_log none

cache_peer 192.168.3.11 parent 81 0 no-query no-digest originserver name=www

cache_peer_domain www www.test.com

cache_peer_access www allow all

http_access allow all

acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe

cache deny QUERY

cache_effective_user squid

cache_effective_group squid

 

10) [root@www ~]#/data/squid3/sbin/squid -k parse

可以根据这个测试命令用来验证squid.conf 的语法和配置(下面是OK 的如果不OK 会有相应的提示根据提示来修改配置文件)

2008/10/14 21:14:56| Processing Configuration File: /data/squid3/etc/squid.conf (depth 0)

11) [root@www ~]#/data/squid3/sbin/squid -z

用来创建缓存目录

 

12) vi 一个squid.sh 的启动脚本如下:赋予可执行权限

[root@www ~]#vi squid.sh

#!/bin/sh

#

ulimit -HSn 15000

# this script starts and stops Squid

echo 15000 > /proc/sys/fs/file-max

case "$1" in

start)

          /data/squid3/sbin/squid -s

          echo -n ' Squid'

          ;;

stop)

          /data/squid3/sbin/squid -k shutdown

          ;;

esac

 

#chmod +x squid.sh

5. 启动squid

[root@www ~]#./squid.sh start 就可以启动squid

 

查看有没有启动可以

[root@www ~]#ps fax|grep squid

13750 pts /3    S+     0:00                      \_ grep squid

30474 ?        Ss     0:00 /data/squid3/sbin/squid -s

30476 ?        S      0:01 \_ (squid) -s

 

通过命令lsof -i:80 查看谁占用了80 端口

 

 

查看squid 的访问日志。

[root@www ~]# tail f /data/squid3/var/logs/page_zs_access_log

 

查看命中率及其他相关信息

[root@www ~]# /data/squid3/bin/squidclient -p 80 -h localhost mgr:info

HTTP/1.0 200 OK

Server: squid/3.0.STABLE9

Mime-Version: 1.0

Date: Tue, 14 Oct 2008 13:22:40 GMT

Content-Type: text/plain

Expires: Tue, 14 Oct 2008 13:22:40 GMT

Last-Modified: Tue, 14 Oct 2008 13:22:40 GMT

X-Cache: MISS from www.6558855.com

Via: 1.0 www.6558855.com (squid/3.0.STABLE9)

Connection: close

 

Squid Object Cache: Version 3.0.STABLE9

Start Time:     Tue, 14 Oct 2008 11:25:50 GMT

Current Time:   Tue, 14 Oct 2008 13:22:40 GMT

Connection information for squid:

        Number of clients accessing cache:      2

        Number of HTTP requests received:       772

        Number of ICP messages received:        0

        Number of ICP messages sent:    0

        Number of queued ICP replies:   0

        Number of HTCP messages received:       0

        Number of HTCP messages sent:   0

        Request failure ratio:   0.00

         Average HTTP requests per minute since start:   6.6

        Average ICP messages per minute since start:    0.0

        Select loop called: 7081542 times, 0.990 ms avg

Cache information for squid:

        Hits as % of all requests:      5min: 0.0%, 60min: 89.7%

        Hits as % of bytes sent:        5min: -0.0%, 60min: -0.0%

        Memory hits as % of hit requests:       5min: 0.0%, 60min: 0.0%

        Disk hits as % of hit requests: 5min: 0.0%, 60min: 0.0%

        Storage Swap size:      104 KB

         Storage Swap capacity:   0.0% used, 100.0% free

        Storage Mem size:       228 KB

        Storage Mem capacity:    0.0% used, 100.0% free

        Mean Object Size:       10.40 KB

        Requests given to unlinkd:      68

Median Service Times (seconds)  5 min    60 min:

        HTTP Requests (All):   0.00000  0.00000

        Cache Misses:          0.00000  0.00000

        Cache Hits:            0.00000  0.00000

        Near Hits:             0.00000  0.00000

        Not-Modified Replies:  0.00000  0.00000

        DNS Lookups:           0.00000  0.00000

        ICP Queries:           0.00000  0.00000

Resource usage for squid:

        UP Time:        7009.125 seconds

        CPU Time:       0.948 seconds

        CPU Usage:      0.01%

        CPU Usage, 5 minute avg:        0.00%

        CPU Usage, 60 minute avg:       0.01%

        Process Data Segment Size via sbrk(): 2968 KB

        Maximum Resident Size: 0 KB

        Page faults with physical i/o: 2

Memory usage for squid via mallinfo():

        Total space in arena:    3240 KB

        Ordinary blocks:         3194 KB     17 blks

        Small blocks:               0 KB      0 blks

        Holding blocks:         11472 KB     17 blks

        Free Small blocks:          0 KB

        Free Ordinary blocks:      45 KB

        Total in use:           14666 KB 100%

        Total free:                45 KB 0%

        Total size:             14712 KB

Memory accounted for:

        Total accounted:         3001 KB  20%

        memPool accounted:       3001 KB  20%

        memPool unaccounted:    11710 KB  80%

        memPoolAlloc calls:    147106

        memPoolFree calls:     145713

File descriptor usage for squid:

        Maximum number of file descriptors:   15000

        Largest file desc currently in use:     14

        Number of file desc currently in use:    8

        Files queued for open:                   0

        Available number of file descriptors: 14992

        Reserved number of file descriptors:   100

        Store Disk files open:                    0

Internal Data Structures:

            45 StoreEntries

            41 StoreEntries with MemObjects

            40 Hot Object Cache Items

            10 on-disk objects

 

 

 

6. 关于动态页面的缓存。

       jsp 页面。

       利用Headerjsp 服务器减压

     在参与缓存的jsp 中加入如下程序,进行“Last-Modified ”和“Expires ”的设置;

 

long file_lmodified = new File("/tmp/catchmodified".lastModified();

response.setBufferSize(16);

response.setDateHeader("Last-Modified", file_lmodified);

response.setDateHeader("Expires", System.currentTimeMillis() / 1000 * 1000 + 300000);

response.flushBuffer();

%>

 

 

7. 添加自动更新记时方式

 

     [root@www ~]# vi refreshCatch.sh

#/bin/sh

/bin/echo >/tmp/catchmodified

Chmod +x refreshCatch.sh

然后在crontab 里写一句

*/5 * * * *  /data/squid3/refreshCatch.sh

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn