HANIX
Hanix aims at Apps of uNIX
最新日志 

Advertisement

Customize
10th-Jul-2007 04:06 pm - 庆祝lj可以访问
好久不来这里了。


LJ终于可以访问了,自己发帖庆祝一下。
20th-Apr-2007 04:23 pm - 系统负载奇怪升高 [loadavg]
这两天,系统的负载一直在30左右,但是查看了cpu,内存,io,网络,负载都非常的轻。到底什么原因?

用ps ax查看,发现系统中有许多处于D+状态的sendmail进程,这些进程都处于不可中断的状态。数了一下,大致也在30个左右。

再分析sendmail进程为什么会处于D+状态?

到/var/spool/目录下,发现clientmqueue和mqueue下有大量的小文件,这个时候只要有进程作用于这两个目录,都有可能导致不可中断(D+),包括rm命令。


系统负载的计算方法:
过去1m/5m/15m时间内,平均等待的进程数。

所以有多少个D+状态的进程,系统负载就会升到多少。
12th-Apr-2007 04:22 pm - linux做nat网关 [gateway, iptables, nat]
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/rmmod ipchains
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprboe ip_nat_ftp
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F POSTROUTING -t nat
/sbin/iptables -P FORWARD DROP
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.8.0/24 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.8.0/24 -j ACCEPT
11th-Apr-2007 01:51 pm - Linux下在vmware中添加新的vmnet
在Linux 下,有时为了做一些网络方面的测试,就需要启用多个网段进行实验。
默认情况下,vmware提供了vmnet0/vmnet1/vmnet8,但是如果你想使用更多的网段,该怎么办?

方法其实很简单,就是修改/etc/vmware/locations文件,在文件开头:
answer NETWORKING yes
answer VNET_0_INTERFACE eth0
answer VNET_8_NAT yes
answer VNET_8_HOSTONLY_HOSTADDR 192.168.63.1
answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
answer VNET_1_HOSTONLY_HOSTADDR 192.168.95.1
answer VNET_1_HOSTONLY_NETMASK 255.255.255.0

添加其他的vmnet。如果需要nat服务,就定义成 answer VMNET_9_nat yes,如果不需要nat,则直接添加:
answer VNET_2_HOSTONLY_HOSTADDR 192.168.64.1
answer VNET_2_HOSTONLY_NETMASK 255.255.255.0

/etc/init.d/vmware restart
后,就能发现/dev/vmnet2已经存在了,并且
ifconfig后
也能发现新的vmnet2接口了。
9th-Apr-2007 06:23 pm - openVPN配置
一、内核驱动
tun/tap支持。
Device Drivers->Network device support->Universal TUN/TAP device driver support
IP forward support/enable routing:
echo 1 > /proc/sys/net/ipv4/ip_forward
4th-Apr-2007 04:42 pm - kvm, xen, vmware
这三个虚拟机目前在一个linux内核下没法共存,只能用一个。

要都支持的话,就需要编译三个不同版本号的内核。

今天在2.6.20下编译vmware时,可以编译过去,但是插入模块时,报错:
vmmon: Unknown symbol paravirt_ops

查了一下,发现是CONFIG_PARAVIRT=y引起,但是kvm是需要它的。
2nd-Apr-2007 03:36 pm - 世界各国2006GDP排名(zz) [gdp]
2005年世界人均GDP排名/2006年世界各国的GDP

1 卢森堡 69,056
  2 挪威 53,465
  3 瑞士 49,246
  4 爱尔兰 46,335
  5 丹麦 45,015
  6 冰岛 44,133
  7 美国 42,076
  8 瑞典 38,451
  9 英国 36,977
  10 日本 36,486
  11 奥地利 35,861
  12 荷兰 35,393
  13 芬兰 35,242
  14 比利时 34,081
  15 卡塔尔 33,586
  16 法国 33,126
  17 德国 33,099
  18 加拿大 32,073
  19 澳洲 29,761
  20 意大利 29,648
  21 新加坡 25,176
  22 西班牙 24,627
  23 香港 24,581
  24 新西兰 23,276
  25 阿拉伯联合酋长国 20,960
  26 科威特 19,288
  27 塞浦路斯 19,008
  28 希腊 18,995
  29 巴哈马 18,190
  30 斯洛文尼亚 17,660
  31 荷兰属地 17,435
  32 以色列 16,987
  33 葡萄牙 16,658
  34 韩国 14,649
  35 汶莱 14,366
  36 台湾 13,926
  37 巴林 13,764
  38 马耳他 13,144
  39 安提瓜和巴布达 11,790
  40 匈牙利 10,896
  41 沙特阿拉伯 10,795
  42 巴布达 10,747
  43 捷克 10,708
  44 阿曼 10,292
  45 特立尼达和多巴哥 10,117
  46 塞舌尔群岛 8,892
  47 爱沙尼亚 8,885
  48 圣基茨和尼维斯 8,546
  49 斯洛伐克 7,963
  50 克罗地亚 7,764
  51 立陶宛 6,796
  52 墨西哥 6,566
  53 波兰 6,373
  54 赤道几内亚 6,235
  55 拉脱维亚 6,150
  56 智利 5,742
  57 博茨瓦纳 5,713
  58 黎巴嫩 5,434
  59 毛里求斯 5,421
  60 利比亚 5,317
  61 加蓬 4,911
  62 巴拿马 4,806
  63 俄国 4,750
  64 马来西亚 4,701
  65 格林那达 4,692
  66 土耳其 4,637
  67 格斯达里加 4,484
  68 阿根廷 4,132
  69 伯利兹 4,120
  70 圣卢西亚岛 4,095
  71 委内瑞拉 4,014
  72 南非 3,886
  73 乌拉圭 3,874
  74 多米尼加 3,772
  75 圣文森特和格林纳丁斯 3,719
  76 保加利亚 3,325
  77 巴西 3,311
  78 罗马尼亚 3,277
  79 卡扎克斯坦 3,185
  80 突尼斯 3,052
  81 牙买加 3,003
  82 白俄罗斯 2,992
  83 塞尔维亚和黑山共和国 2,820
  84 泰国 2,807
  85 苏里南 2,785
  86 土库曼 2,784
  87 伊朗 2,608
  88 阿尔及利亚 2,601
  89 马其顿共和国 2,570
  90 阿尔巴尼亚 2,434
  91 秘鲁 2,379
  92 马尔代夫 2,355
  93 纳米比亚 2,333
  94 汤加 2,226
  95 斐济 2,199
  96 厄瓜多尔 2,168
  97 波斯尼亚和黑塞哥维那 2,167
  98 佛得角 2,161
  99 哥伦比亚 2,119
  100 萨尔瓦多 2,063
  101 斯威士兰 2,043
  102 多米尼加共和国 2,014
  103 乔丹 1,988
  104 危地马拉 1,966
  105 萨摩亚 1,821
  106 中华人民共和国 1,703(2005)
  107 乌克兰 1,589
  108 安哥拉 1,580
  109 摩洛哥 1,576
  110 瓦努阿图 1,440
  111 刚果共和国 1,401
  112 叙利亚 1,386
  113 阿塞拜疆 1,237
  114 巴拉圭 1,170
  115 玻利维亚 1,137
  116 埃及 1,118
  117 印度尼西亚 1,093
  118 菲律宾 1,084
  119 洪都拉斯 1,062
  120 斯里南卡 1,052
  121 圭亚那 1,035
  122 佐治亚 927
  123 亚美尼亚 868
  124 卡麦隆 860
  125 象牙海岸 859
  126 不丹 859
  127 吉布提 822
  128 尼加拉瓜 794
  129 基里巴斯 768
  130 塞内加尔 745
  131 摩尔多瓦 665
  132 巴布亚新几内亚 660
  133 印度 652
  134 海地 650
  135 苏丹 643
  136 比宁 583
  137 巴基斯坦 577
  138 乍得 567
  139 科摩罗 554
  140 也门 553
  141 蒙古 547
  142 莱索托 546
  143 所罗门群岛 534
  144 越南 528
  145 尼日利亚 528
  146 肯尼亚 489
  147 赞比亚 461
  148 毛里塔尼亚 452
  149 加纳 451
  150 马里 435
  151 布基纳法索 424
  152 老挝 421
  153 孟加拉国 418
  154 吉尔吉斯斯坦 413
  155 东帝汶 400
  156 乌兹别克斯坦 376
  157 基尼 375
  158 圣多美及普林西比 372
  159 多哥 357
  160 中非共和国 356
  161 柬埔寨 327
  162 坦桑尼亚 323
  163 乌干达 296
  164 莫桑比克 294
  165 冈比亚 284
  166 津巴布韦 277
  167 塔吉克斯坦 275
  168 尼日尔 273
  169 马达加斯加 263
  170 尼泊尔 246
  171 塞阿里昂 207
  172 几内亚比绍 204
  173 卢旺达 189
  174 马拉维 174
  175 厄立特里亚 157
  176 缅甸 135
  177 民主党刚果共和国 122
  178 埃塞俄比亚 121
  179 布隆迪 103

2006年世界各国的GDP

名次--经济体-----------国内生产总值---------面积-----------人口----------人均GDP--

01----美国--------132216.85亿美元--面积--982.66万Km2--人口--30053万--人均-43995美元
02----日本---------49113.62亿美元--面积---37.78万Km2--人口--12746万--人均-38533美元
03----德国---------28582.34亿美元--面积---35.70万Km2--人口---8242万--人均-34679美元
04----中国---------26847.05亿美元--面积--959.70万Km2--人口-131457万--人均--2042美元
05----英国---------23413.71亿美元--面积---24.48万Km2--人口---6060万--人均-38636美元
06----法国---------21537.46亿美元--面积---54.70万Km2--人口---6088万--人均-35377美元
07---意大利--------17839.59亿美元--面积---30.12万Km2--人口---5813万--人均-30689美元
08---加拿大--------10889.37亿美元--面积--998.47万Km2--人口---3310万--人均-32898美元
09---西班牙--------10812.29亿美元--面积---50.48万Km2--人口---4040万--人均-26763美元
10----印度----------8000.00亿美元--面积--328.76万Km2--人口-109535万--人均---723美元
11----韩国----------7684.58亿美元--面积----9.85万Km2--人口---4885万--人均-15731美元
12---墨西哥---------7415.20亿美元--面积--197.26万Km2--人口--10745万--人均--6901美元
13---俄罗斯---------7328.92亿美元--面积-1707.52万Km2--人口--14289万--人均--5129美元
14--澳大利亚--------6453.06亿美元--面积--768.69万Km2--人口---2026万--人均-31851美元
15----巴西----------6207.41亿美元--面积--851.20万Km2--人口--18808万--人均--3300美元
16----荷兰----------6127.13亿美元--面积----4.15万Km2--人口---1649万--人均-31757美元
17----瑞士----------3868.35亿美元--面积---4.129万Km2--人口----752万--人均-51441美元
18----瑞典----------3715.21亿美元--面积---45.00万Km2--人口----907万--人均-40962美元
19---比利时---------3678.24亿美元--面积---3.053万Km2--人口---1038万--人均-35436美元
20--中国台湾--------3539.17亿美元--面积---3.598万Km2--人口---2304万--人均-15361美元
21---土耳其---------3581.67亿美元--面积---78.06万Km2--人口---7041万--人均--5087美元
22---奥地利---------3093.46亿美元--面积---8.387万Km2--人口----819万--人均-37771美元
23-沙特阿拉伯-------2862.05亿美元--面积--196.06万Km2--人口---2702万--人均-10592美元
24----波兰----------2654.12亿美元--面积---31.27万Km2--人口---3854万--人均--6887美元
25-印度尼西亚-------2643.57亿美元--面积--191.94万Km2--人口--24545万--人均--1077美元
26----挪威----------2616.94亿美元--面积---32.38万Km2--人口----461万--人均-56767美元
27----丹麦----------2563.18亿美元--面积----4.31万Km2--人口----545万--人均-47031美元
28----希腊----------2224.86亿美元--面积---13.19万Km2--人口---1069万--人均-20813美元
29---阿根廷---------2103.60亿美元--面积--276.69万Km2--人口---3992万--人均--5270美元
30---爱尔兰---------2029.35亿美元--面积----7.03万Km2--人口----406万--人均-49984美元
31----南非----------2004.58亿美元--面积--122.00万Km2--人口---4419万--人均--4536美元
32----泰国----------1965.78亿美元--面积---51.40万Km2--人口---6463万--人均--3042美元
33----伊朗----------1948.29亿美元--面积--164.80万Km2--人口---6869万--人均--2836美元
34--中国香港--------1871.12亿美元--面积----0.11万Km2--人口----694万--人均-26961美元
35---葡萄牙---------1766.29亿美元--面积----9.24万Km2--人口---1061万--人均-16647美元
36----芬兰----------1717.33亿美元--面积---33.81万Km2--人口----523万--人均-32836美元

从初中开始对这些数字感兴趣,即便是专家来看中国的经济也是个巨大的谜团。
对于一般人来说,就只能从这些表面的数据来感受中国了
现在再次对中国经济总量做一次预计
2007年中国经济总量超越德国 升居世界第三
2011或者2012年超越日本 升居世界第二
乐观估计2025年中国经济总量可以超越美国,雄踞世界第一。

中国人口总量是日本的10倍,即便2012年中国经济总量超越日本,届时人均也只不过是日本的1/10,这正说明中国的经济潜力巨大。
20年后中国人口大约是美国的四倍,中国从总量上超越美国并非遥不可及,但是人均要赶超美国却极其漫长
大国经济格局是个此消彼长的变化格局,老牌 经济强国必然会受到复兴中国全方位的挑战
很有可能中国的崛起直接导致美国日本的衰落
弱者更弱 强者更强
世界将因为中国的复兴而产生巨大变动
没有谁能具体预料
但是中国崛起无可阻挡

人民币严重被低估
和美元真实比价大约4:1
今后20年人民币会稳定升值到这个合理价位

中国人口众多,幅员辽阔,地区经济差异巨大。当沿海大都市已经进入发达国家生活水平的时候,内地很多省区可能依然是中低水平
这种巨大的地区经济差异是发展的必然
甚至从某种程度上来说是中国的发展优势
广州深圳的工厂可以轻松招纳到月薪几百元的内地工人,这在国土面积狭小的发达国家或者已经发展均衡的发达国家是不可想象的。
正是这种差异为中国提供了至少30年的低劳动力价值竞争优势
也就是说中国可以和发达国家、甚至低收入的发展中国家在高中低各个经济层面展开积极长久的竞争
当中国目前的经济增长速度降低 就意味着中国已经全部进入了发达水平
那一天中国的经济总量估计会占到全球总额的三分之一甚至二分之一
这一天到来或许仅仅需要20年
也或许50年
26th-Mar-2007 09:01 am - gaim里的qq登录不上了 [gaim, qq]
(08:59:11) util: Writing file accounts.xml to directory /home/hanwoody/.gaim
(08:59:12) account: Connecting to account 24486915
(08:59:12) connection: Connecting. gc = 0x864f0b0
(08:59:12) dns: DNS query for 'tcpconn3.tencent.com' queued
(08:59:12) dns: Created new DNS child 4913, there are now 1 children.
(08:59:12) dns: Successfully sent DNS request to child 4913
(08:59:12) dns: Got response for 'tcpconn3.tencent.com'
(08:59:12) dnsquery: IP resolved for tcpconn3.tencent.com
(08:59:12) proxy: Attempting connection to 219.133.38.5
(08:59:12) proxy: Connecting to tcpconn3.tencent.com:8000 with no proxy
(08:59:12) proxy: Connection in progress
(08:59:12) proxy: Connected.
(08:59:12) QQ: ==> [13723] QQ_CMD_REQUEST_LOGIN_TOKEN, from (QQ unknown version)
(08:59:12) QQ: ack [13723] QQ_CMD_REQUEST_LOGIN_TOKEN, remove from sendqueue
(08:59:12) QQ: <<< got a token with 24 bytes -> [default] decrypt and dump
0000: F6 9F 06 00 DB 44 A1 B4 88 FD F2 45 81 94 37 C4 v...[D!4.}rE..7D
0016: A0 6C C3 F6 E6 83 CD 81 lCvf.M.
(08:59:12) QQ: ==> [13724] QQ_CMD_LOGIN, from (QQ unknown version)
(08:59:12) QQ: ack [13724] QQ_CMD_LOGIN, remove from sendqueue
(08:59:12) QQ: Decrypt login reply packet with inikey, 11 bytes
(08:59:12) QQ: Redirected to new server: 219.133.49.73:80
(08:59:12) QQ: 0 packets in sendqueue are freed!
(08:59:12) QQ: 0 group packets are freed!
(08:59:12) QQ: 0 groups are freed
(08:59:12) QQ: 0 add buddy requests are freed!
(08:59:12) QQ: 0 info queries are freed!
(08:59:12) QQ: 0 qq_buddy structures are freed!
(08:59:12) dns: DNS query for '219.133.49.73' queued
(08:59:12) dns: Created new DNS child 4914, there are now 1 children.
(08:59:12) dns: Successfully sent DNS request to child 4914
(08:59:12) dns: Got response for '219.133.49.73'
(08:59:12) dnsquery: IP resolved for 219.133.49.73
(08:59:12) proxy: Attempting connection to 219.133.49.73
(08:59:12) proxy: Connecting to 219.133.49.73:80 with no proxy
(08:59:12) proxy: Connection in progress
(08:59:12) proxy: Connected.
(08:59:17) util: Writing file accounts.xml to directory /home/hanwoody/.gaim
(08:59:22) QQ: <<< [13723] send again for 1 times!
(08:59:27) QQ: <<< [13723] send again for 2 times!
(08:59:32) QQ: <<< [13723] send again for 3 times!
(08:59:37) QQ: <<< [13723] send again for 4 times!
(08:59:42) QQ: <<< [13723] send again for 5 times!
9th-Mar-2007 10:06 pm - vmware镜像用于xen虚拟机 [vmware, xen]
一、确保vmware磁盘的使用方式符合preallocated virtual disk,用vmware的话说,disk type是3
fdisk -u ./Gentoo-flat.vmdk
Device Boot Start End Blocks Id System
./Gentoo-flat.vmdk1 63 321299 160618+ 83 Linux
./Gentoo-flat.vmdk2 321300 5301449 2490075 83 Linux
./Gentoo-flat.vmdk3 5301450 6281414 489982+ 83 Linux

计算每个分区的offset:
1, 63*512
2, 321300*512
3, 5301450*512

二、根据offset值将这些分区使用losetup工具attach到loop设备
losetup -o 63*512 /dev/loop0 ./Gentoo-flat.vmdk
losetup -o 321300*512 /dev/loop1 ./Gentoo-flat.vmdk
losetup -o 5301450*512 /dev/loop2 ./Gentoo-flat.vmdk

三,将这些loop设备作为物理设备填入在xen的配置中
启动过程中可能会有一些问题,不过启动没有关系了。
9th-Mar-2007 03:35 pm - Squid工作原理(zz) [proxy, squid]
Squid工作原理:
Squid 启动之后,会在 RAM 建立一个 Hash Table,记录硬盘中 object 配置的情形。
Squid 又会在 RAM 中建立一个 Digest Table(摘要表) ,其功能是和其他有合作关的 Squid (Sibling)互相交换 Digest Table,万一用户端想要的资料自己没有时,可以很快的知道哪一部 Squid Server 有资料(Squid 也可以透过 ICP 向其他 Squid 查询,但速度较慢)。但是 Digest Table 本身不小,既记忆体又频宽,如果 Server 的内存不够,对外带宽不够,反而比 ICP 查询更慢。

Squid的种类【可能不太合适叫做种类,不过没有更好的词。语文太差^_^】
child、sibling、parent。

关系如下:
  Squid Server 之间的第一种关系是:Child 和 Parent。当 Child Squid Server 没有资料时,会直接向 Parent Squid Server 要资料,然後一直等,直到 Parent 给它资料为止。
  Squid Server 之间的第二种关系是:Sibling 和 Sibling。当 Squid Server 没有资料时,会先向 Sibling 的 Squid Server 要资料,如果 Sibling 没资料,就跳过它直接向 Parent 要或上 internet 去拿。
  
一般 Squid Server 运作的模式是:
1. 当 Squid Server 没有资料时,会先向 Sibling 的 Squid Server 要资料,如果 Sibling 没资料,就跳过它直接向 Parent 要。
2. 向 Parent 要资料,然後一直等,直到 Parent 给它资料为止(Parent 自己有的资料或上 internet 去拿)。
3. 没有 Parent 时,就自己上 internet 去拿。
4. 如果这三者都拿不到资料,才向用户端回报拿不到资料。

编译安装Squid:
./configure --prefix=/usr/local/squid[-ip] --enable-async-io=160 --enable-icmp --enable-kill-parent-hack --enable-cache-digests --enable-default-err-language=Simplify_Chinese --enable-poll && make && make install
--enable-async-io=160:这项主要是设置async模式来运行 squid,我的理解是设置用线程来运行squid,如果服务器很强劲,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高。如果服务器比较糟糕就根据实际情况设了(不要太贪心哦^_^)。
--enable-icmp:加入icmp。默认不加。
--enbale-kill-parent-hack:当kill掉nobody的squid进程的时候会同时杀死它的父进程。
--enable-cache-digests:【。。。】
--enable-default-err-language=Simplify_Chinese:当有错误的时候在页面中显示简体中文。【不过squid还是会无情的把所有语言都装上,看的不顺的话手工删咯】
--enable-poll:可以提升效能。

Squid的结构介绍:
安装好的目录在/usr/local/squid-10 (这里假设我的主ip最后一段是10)
结构是:
bin/:放置squid默认写好的启动脚本。有RunAccel;RunCache;squidclient;前2个启动Squid可以使用,因为当 squid进程死了后,这个脚本可以自动检测到。 RunAccel是用于web 加速用的脚本,而RunCache是用于做squid代理用的,squidclient是用本机做squid测试的。
etc/:squid.conf在这个目录中
libexec/:函数库;
man/:帮助文件。不用说了吧。。。
sbin/ :squid命令所在目录。一般如果我用来测试就启动squid命令。或者用这个命令创建swap,或者加-k参数重启之类的操作。
share/ :一些错误显示的html都在里面;
var/ :log,pid,swap都在这个目录中!
隔了很久才有空可以写这个经验体会,前一段时间一直在搞qmail,头大中,终于可以空下来了:)

先看squid的一个重要的,对我来说也是唯一需要配置的一个配置文件。选项非常多,当然,默认的squid.conf文件中对于每一个选项都有比较详细的说明,但是我还是想把我理解的以及必须要进行配置的选项罗列出来,以免过段时间自己都忘了^_^

以下的配置我是要向sina,sohu,163学习的web server的架构,试着自己去搭建一个这样的环境来看看效果到底如何。因此这里的squid不是用来做代理的,而是反向作为网站高速缓存。其实原理差不多,只是方向反一反而已,相信都能理解这点的。

使用的测试服务器为Dell 2650 双CPU至强2.4G 内存DDR 2G。OS为Freebsd 5.2.1(这里需要说明的是,从实际使用情况来看,squid跑在freebsd上的效果是最快最好的。这是由os的文件系统所决定的,千万不能用, solaris,感觉solaris的文件系统实在太慢,虽然非常稳定,而且跑多线程的效果是最好的。linux嘛~~~没有进行测试,不过感觉在 freebsd之下,solaris之上。)

Squid.conf的几个重要参数的配置说明:

http_port 61.155.143.54:80 #Squid Server侦听的端口。假设我的主页的dns server 指到61.155.143.54上的,因此我必须让squid来侦听这个IP的这个端口。

cache_mem 32 MB #要额外提供多少内存给squid使用,这里的额外是指squid会将最常用的一些缓存放到这块内存中。这个指令也是我看了官方文档后才理解的。因为一开始从实际使用情况来看,我这边设32M的话,用top命令来查看一般会达到100M左右。这点让我让我很想不通,呵呵。然后就去看官方文档,发觉 squid是这样来计算使用多少内存的:squid本身的进程大概10M-20M,然后下面我设的cache目录的大小是500M的话,那他放在内存里的 hash索引大概需要20M左右,然后再加上这里设置的cache_mem的值。官方文档建议你的实际内存大小应该是这个squid所需要总内存的2倍以上。自己量力而为吧。cache_mem当然是越大越好了。

cache_dir ufs /usr/local/squid-54/var/cache 500 16 256 #设置squid存放cache目录的位置以及大小。第一个数字500是指目录的总大小为500M(默认为100M),第二个数字16是指第一级目录为 16个,第三个数字256是指第二级目录为256个我个人觉得如果网站访问量大,并且内容很多的话,可以考虑将默认的100M改大一点,否则会报错。我就经历过,错误我忘了记录了(该死!)大致就是说超过Max的极限了,当时查了半天才找到罪魁祸首是这条指令,惭愧~~~。

cache_access_log none
cache_log none

cache_store_log none #我是将这些log记录都关了, 有需要的可以将它们打开。

acl managerIP src 10.10.10.10
acl ipcanbrows dst 10.10.10.0/24 #acl应该是squid配置里面最难理解也最需要花时间的地方了。应该说只需要修改很小的一部分就可以了,像这里我只是在原来的基础上加了2条记录,前面一条的意思是我定义了10.10.10.10为源路径,另外一条是指目的端是10.10.10.0/24这个网段。而managerIP, ipcanbrows随便取得名字。具体的规则需要下面的语句来定义。10.10.10.10就是本服务器的内网ip,而apache server的ip就在10.10.10.0/24这个网段里,不需要用外网ip,一定程度上节约了ip地址。

http_access allow manager managerIP ipcanbrows localhost #加上2个允许就可以了。高深的配置我觉得我也不需要,用户可以访问就达到目的了:)

httpd_accel_host virtual #由于我后面的apache server是基于ip来做虚拟主机的,因此这里需要设置成virtual。

httpd_accel_port 80 #http加速的端口,因为习惯等原因,还是将后面的apache server监听80端口。

httpd_accel_uses_host_header on #如果选了virtual的话,这里必须设置成on。

这里最多只列出了5%左右的选项,但是我配置的时候就只是用到了这些,因此,如果做网站加速的话,基本设置就是这些。当然需要更强劲的功能的话就需要好好读读squid的配置文件的文档了。

最后的步骤:

1. 改变var目录的权限:chown -R nobody var

2. 创建缓存目录:sbin/squid -z

3. 启动squid:bin/RunAccel & (这边我使用squid附带的启动脚本来启动squid,有个好处就是,如果squid的进程死了的话,这个脚本会自动启动squid,对于运行在线上的服务器来说,这点太重要了。

一些使用体会:

1. squid使用时间长了,速度会变慢,我的建议是每2小时kill掉squid 进程,RunAccel脚本会自动再启动的它。

2. 写一脚本,放进crontab中,每天凌晨4点左右把cache目录清空。

#!/bin/sh
# squid clean swap and restart script by marco lu
SQUID_DIR=/usr/local/squid-54/
PID_FILE=${SQUID_DIR}var/logs/squid.pid
CACHE_DIR=${SQUID_DIR}var/cache
PPID=`ps aux | grep -i squid-54 | grep -v grep|awk '{print $2}'`
kill -9 ${PPID} > /dev/null
kill -9 `cat ${PID_FILE}` > /dev/null
rm -rf $CACHE_DIR/*
${SQUID_DIR}sbin/squid -z > /dev/null
if [ $? -eq 0 ]
then
${SQUID_DIR}bin/RunAccel & > /dev/null
fi

Advertisement

Customize
This page was loaded Jul 14th 2009, 8:35 am GMT.