FreeBSD6.2-RELEASE+Squid-2.6.STABLE16代理架设及性能优化笔记[未完]

说明:最近发现几台squid代理在高负载下的性能不是很好,有时甚至造成网络时断时续,所以这次特意重新架设,在架设过程中注重“优化”,这里当然包括操作系统FreeBSD本身的一些优化和代理软件squid的优化。本文只是初步先将代理架设完成,还没完,我将继续对squid进行优化。另外,这次在安装squid的最新稳定版squid-2.6.STABLE16时,发现配置文件中squid.conf中acl那一段放在了最前面,作者应该是考虑到那是必配项,方面使用者配置:)。

logo-red.png

img4.gif

=======================================================

一、FreeBSD的安装及优化

1、最小化安装FreeBSD6.2RELEASE

2、配置内核:

newproxy# cd /usr/src/sys/i386/conf
newproxy# cp GENERIC funpower
newproxy# ee funpower

修改内核配置文件,将不需要的选项(如网卡)之类的前面打#,然后按esc并按a保存退出,再执行:

newproxy# /usr/sbin/config funpower
newproxy# cd ../compile/funpower
newproxy# make cleandepend
newproxy# make depend
newproxy# make
newproxy# make install

3、调整“Mbuf Clusters”

FreeBSD6.2RELEASE默认的Mbuf Clusters的默认值为25600,

bsdsquidnew1.gif

将它修改成51200,执行如下:

newproxy# cd /boot/defaults
newproxy# ee loader.conf

找到#kern.ipc.nmbclusters=””,将其改为kern.ipc.nmbclusters=”51200″,注意将前面的#要去掉,保存退出。

4、调整“临时端口”范围

squid要与另一台服务器建立连接,内核就要分配一个临时端口来建立连接,这些临时端口在FreeBSD6.2RELEASE有一个范围,默认为49152–>65535,显然,对于繁忙的服务器,性能将会受到影响。因为一些TCP连接会被它们关闭并进入TIME_WAIT状态,而且当这些连接进入TIME_WAIT状态时,如下图:

bsdsquidnew2.gif

所以对于负载大的服务器(比如每秒有上百个连接)此端口范围应该扩大,将sysctl -w net.inet.ip.portrange.first=30000命令放入/etc/rc.local,就可以将临时端口范围修改为30000–>65535。当然,如果你想调整65535这个数值,就使用net.inet.ip.portrange.last命令。这里我只调整了net.inet.ip.portrange.first的数值。

5、重启机器。

二、squid的安装

1、安装perl

newproxy# cd /usr/ports/lang/perl5
newproxy# make install

2、下载并安装squid

http://www.squid-cache.org/Versions/v2/2.6/下载squid-2.6.STABLE16.tar.gz并通过FTP放置服务器目录中/home/funpower,然后开始解压安装:

newproxy# cd /home/funpower
newproxy# tar zxvf squid-2.6.STABLE16.tar.gz
newproxy# cd squid-2.6.STABLE16
newproxy# ./configure –prefix=/usr/local/squid
newproxy# make
newproxy# make install

3、配置squid.conf

newproxy# cd /usr/local/squid/etc
newproxy# ee squid.conf

内容如下:

acl web src 192.168.60.0/24
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
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 manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow web
http_access deny all
icp_access allow all
http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin ?
cache deny QUERY
cache_mem 64 MB
cache_dir ufs /usr/local/squid/cache 7000 16 256
access_log /dev/null
cache_log /dev/null
cache_store_log none
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mgr webmaster@jscpu.com
cache_effective_user squid
cache_effective_group squid
visible_hostname jiulongproxynew.jscpu.com

4、创建用户及缓存等:

newproxy# pw groupadd squid
newproxy# pw adduser squid -g squid -s /nonexistent
newproxy# mkdir /usr/local/squid/cache
newproxy# chown -R squid /usr/local/squid/cache
newproxy# chgrp -R squid /usr/local/squid/cache
newproxy# chown -R squid /usr/local/squid/var/logs
newproxy# chgrp -R squid /usr/local/squid/var/logs
newproxy# /usr/local/squid/sbin/squid -z
newproxy# cd /usr/local/squid/sbin
newproxy# ./squid
newproxy# ee /etc/rc.local

加入如下一行:
/usr/local/squid/sbin/squid
保存退出。

5、优化squid

???

2 Comments

  1. […] 在FreeBSD上安装完squid,squid.conf中添加如下条目可以过滤一些“关键字”和“DOMAIN”: […]

  2. […] 11、FreeBSD6.2-RELEASE+Squid-2.6.STABLE16代理架设及性能优化笔记[未完] <new> […]

Leave a Reply to FreeBSD文档及笔记 – linux网址大全