Skip to content


Centos5.5使用xen 3.0.3安装Linux虚拟机

网上一些中文资料不够详细,一直没装成功,经历数十次的失败现成功安装
通过桥接和端口转发,宿主机和虚拟机都可对外服务.

一.安装xen
1.系统信息
dell r410
5506*2,4G*4,SAS146G*2

cat /etc/issue
CentOS release 5.5 (Final)

uname -a
Linux beetel 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

机器名:server_dom0
公网ip:61.xxx.xx.xx
虚拟机ip:192.168.122.11

查看虚似化支持
grep -E ‘(vmx|svm)’ /proc/cpuinfo

flags : fpu tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc pni vmx est ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm

2.设置网易源更新组件
xen安装方式有yum,二进制,编译
我选择yum方式最方便
cd /etc/yum.repos.d
wget http://mirrors.163.com/.help/CentOS-Base-163.repo
yum makecache
yum groupinstall “Development Libraries”
yum groupinstall “Development Tools”
yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial

2.安装centos5.5自带的xen 3.0.3-105.el5_5.5
这个是07年版的,最新为xen3.4.3
yum groupinstall Virtualization

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
gnome-applet-vm x86_64 0.1.2-1.el5 base 76 k
kernel-xen x86_64 2.6.18-194.32.1.el5 updates 20 M
libvirt i386 0.6.3-33.el5_5.3 updates 2.0 M
libvirt x86_64 0.6.3-33.el5_5.3 updates 2.0 M
virt-manager x86_64 0.6.1-12.el5 base 1.5 M
virt-viewer x86_64 0.0.2-3.el5 base 25 k
xen x86_64 3.0.3-105.el5_5.5 updates 1.9 M
Installing for dependencies:
libvirt-python x86_64 0.6.3-33.el5_5.3 updates 137 k
python-virtinst noarch 0.400.3-9.el5_5.1 updates 380 k

Transaction Summary
================================================================================
Install 9 Package(s)
Upgrade 0 Package(s)

Total download size: 28 M
Is this ok [y/N]: y

3.修改其中的default=1为default=0,启用xen内核
vi /etc/grub.conf

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.32.1.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-194.32.1.el5
module /vmlinuz-2.6.18-194.32.1.el5xen ro root=/dev/VolGroup00/LogVol02
module /initrd-2.6.18-194.32.1.el5xen.img
title CentOS (2.6.18-194.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol02
initrd /initrd-2.6.18-194.el5.img

4.重新启动计算机
reboot

5.重启后登录系统,检查XEN是否正常

5.1 内核版本
uname -a
Linux beetel 2.6.18-194.32.1.el5xen #1 SMP Wed Jan 5 18:44:24 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

5.2 xen信息
xm info

host : server_dom0
release : 2.6.18-194.32.1.el5xen
version : #1 SMP Wed Jan 5 18:44:24 EST 2011
machine : x86_64
nr_cpus : 8
nr_nodes : 1
sockets_per_node : 2
cores_per_socket : 4
threads_per_core : 1
cpu_mhz : 2128
hw_caps : bfebfbff:28100800:00000000:00000140:009ce3bd:00000000:00000001
total_memory : 16371
free_memory : 383
node_to_cpu : node0:0-7
xen_major : 3
xen_minor : 1
xen_extra : .2-194.32.1.el5
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p
xen_pagesize : 4096
platform_params : virt_start=0xffff800000000000
xen_changeset : unavailable
cc_compiler : gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)
cc_compile_by : mockbuild
cc_compile_domain : centos.org
cc_compile_date : Wed Jan 5 17:43:03 EST 2011
xend_config_format : 2

5.3查看xen日志
ls -lh /var/log/xen

5.4查看网卡
ifconfig

eth0 Link encap:Ethernet HWaddr 7x:2x:Cx:0x:5x:Cx
inet addr:61.xxx.xx.xx Bcast:61.xxx.xx.xx Mask:255.255.255.128
inet6 addr: fe80::xxxxxxxxxxxxxx/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22251 errors:0 dropped:0 overruns:0 frame:0
TX packets:10210 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:20696752 (19.7 MiB) TX bytes:796183 (777.5 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:23591 errors:0 dropped:0 overruns:0 frame:0
TX packets:10233 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:21590086 (20.5 MiB) TX bytes:876169 (855.6 KiB)
Interrupt:25 Memory:da000000-da012800

vif0.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:10212 errors:0 dropped:0 overruns:0 frame:0
TX packets:22251 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:796563 (777.8 KiB) TX bytes:20696752 (19.7 MiB)

virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:468 (468.0 b)

xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:5505 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:273968 (267.5 KiB) TX bytes:0 (0.0 b)

新增了peth0,vif0.0,virbr0,xenbr0
peth0为物理网卡
eth0为宿主机(dom0)虚拟网络设备
vif0.0第x个虚拟机(domu)中的第x块网卡,这里为dom0的接口
virbr0和xenbr0为软桥接接口

brctl show

bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
xenbr0 8000.feffffffffff no peth0
vif0.0

5.5查看宿主iptables
cat /etc/sysconfig/iptables

# Generated by iptables-save v1.3.5 on Thu Mar 31 01:08:25 2011
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/255.0.0.0 -i ! lo -j DROP
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 3306 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -p udp -m udp –dport 123 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
COMMIT
# Completed on Thu Mar 31 01:08:25 2011
# Generated by iptables-save v1.3.5 on Thu Mar 31 01:08:25 2011
*nat
:PREROUTING ACCEPT [166:7018]
:POSTROUTING ACCEPT [1:80]
:OUTPUT ACCEPT [1:80]
COMMIT
# Completed on Thu Mar 31 01:08:25 2011
# Generated by iptables-save v1.3.5 on Thu Mar 31 01:08:25 2011
*mangle
:PREROUTING ACCEPT [224:12218]
:INPUT ACCEPT [58:5200]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [47:6304]
:POSTROUTING ACCEPT [47:6304]
COMMIT
# Completed on Thu Mar 31 01:08:25 2011

二、安装XEN的Linux客户机系统

准备好安装源
1.从网易下载centos5.5的bt
http://mirrors.163.com/centos/5.5/isos/x86_64/CentOS-5.5-x86_64-bin-DVD.torrent

2.刻盘

3.从cdrom 复制源到硬盘
mkdir /mnt/cdrom
mkdir /opt/iso
dd if=/dev/cdrom of=/opt/iso/centos.iso
ll -h /opt/iso/centos.iso
mount -o loop -t iso9660 /opt/iso/centos.iso /mnt/cdrom
ll /mnt/cdrom

4.制作映像文件
xen能安装和运行在实际的物理分区上,lvm分区上,一个映像文件中,或NFS等网络文件系统中

映像文件安全性和io性能比较低,但是很方便.
mkdir /opt/vm1
cd /opt/vm1
dd if=/dev/zero of=vm1.img bs=1M seek=15000 count=1

1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.002058 seconds, 510 MB/s

#这里创建15G大小

5.安装源获取方式

有http,ftp,nfs等方试

直接使用在线源
http://mirrors.163.com/centos/5.5/os/x86_64/
在设置完IP后就没有反应了
python -m SimpleHTTPServer
在setuptool安装时失败

使用nfs方式
vi /etc/exports
/mnt/cdrom *(sync,ro)

yum install nfs-utils portmap
nfs会使用随机端口,先把iptables关了
/etc/init.d/portmap start
/etc/init.d/nfs start
exportfs -rv

6.查看iptables
iptables-save

# Generated by iptables-save v1.3.5 on Thu Mar 31 01:15:31 2011
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i virbr0 -p udp -m udp –dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp –dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp –dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp –dport 67 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/255.0.0.0 -i ! lo -j DROP
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 3306 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -p udp -m udp –dport 123 -j ACCEPT
-A FORWARD -d 192.168.122.0/255.255.255.0 -o virbr0 -m state –state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/255.255.255.0 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT –reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT –reject-with icmp-port-unreachable
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
COMMIT
# Completed on Thu Mar 31 01:15:31 2011
# Generated by iptables-save v1.3.5 on Thu Mar 31 01:15:31 2011
*nat
:PREROUTING ACCEPT [602:26675]
:POSTROUTING ACCEPT [1:73]
:OUTPUT ACCEPT [1:73]
-A POSTROUTING -s 192.168.122.0/255.255.255.0 -d ! 192.168.122.0/255.255.255.0 -p tcp -j MASQUERADE –to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/255.255.255.0 -d ! 192.168.122.0/255.255.255.0 -p udp -j MASQUERADE –to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/255.255.255.0 -d ! 192.168.122.0/255.255.255.0 -j MASQUERADE
COMMIT
# Completed on Thu Mar 31 01:15:31 2011
# Generated by iptables-save v1.3.5 on Thu Mar 31 01:15:31 2011
*mangle
:PREROUTING ACCEPT [717:40264]
:INPUT ACCEPT [147:16162]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [129:19329]
:POSTROUTING ACCEPT [129:19329]
COMMIT
# Completed on Thu Mar 31 01:15:31 2011

系统重启后xen会再生成一次,会有重复,不作保存直接关了.
/etc/init.d/iptables stop

7.安装虚拟机

virt-install -n vm1 -r 2048 –vcpus=2 –file=/opt/vm1/vm1.img –nographics -p –location=nfs:192.168.122.1:/mnt/cdrom –bridge=virbr0

创建名为”vm1″的虚拟机,分配2G内存,2个cpu,使用”/opt/vm1/vm1.img”映像文件,半虚似化,使用nfs源,使用virbr0网桥
192.168.122.1为宿主virbr0的ip
我装了好N次卡在获取hostname那里,带上–bridge=virbr0参数就可以顺利通过

8.安装中
■语言选择english
■手动配置ipv4;ip:192.168.122.11/255.255.255.0,Gateway:192.168.122.1,Name Server: 192.168.122.1
如果virt-install的网络配置错误,会一直卡在这里
■下一步是选择”Use text mode”还是”Start VNC”,使用文本模式
■分区

/dev/xvda ^ |
| xvda1 1 13 101M ext3 /boot : |
| xvda2 14 144 1027M swap : |
| xvda3 145 1912 13868M ext3 / : |

■Use GRUB Boot Loader,4个ok
■配置网卡ip

IP Address Prefix (Netmask) |
| 192.168.122.11__ / 255.255.255.0___

■网关和dns

| Gateway: 192.168.122.1____________________________ |
| Primary DNS: 192.168.122.1____________________________ |
| Secondary DNS: 8.8.8.8__________________________________ |

■机器名设置:vm1
■时区设置:不使用utc,Asia/Shanghai
■root密码:
■安装包选择:去掉上面的*,使用自定义
选择Administration Tools,Base,Development Tools ,Editors,Text-based Internet
■依赖关系检查后按”OK”,系统开始格式化文件系统并复制文件
■重启

三、配置宿主机及虚拟机
1.进入虚拟机
重启后在sendmail和sm-client会卡一会
出来authconfig-tui的乱码配置界面,不停的闪啊闪,键盘也不听控制,不用操作,等它闪个一分钟就会自动关了

CentOS release 5.5 (Final)
Kernel 2.6.18-194.el5xen on an x86_64

vm1 login: root

输入root和密码进去后没有光标

退出并新开一个控制台然后重新进入
在宿主机
xm console vm1

2.虚拟机网卡配置
eth0 Link encap:Ethernet HWaddr 00:16:36:47:A2:89
inet addr:192.168.122.11 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::216:36ff:fe47:a289/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:354 errors:0 dropped:0 overruns:0 frame:0
TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18489 (18.0 KiB) TX bytes:7066 (6.9 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)

3.虚拟机设置

3.1执行firstboot解决authconfig-tui乱码问题

3.2关闭服务方便测试
chkconfig sendmail off
chkconfig iptables off

4.测试虚拟机网络
ping 61.192.168.122.1 通
ping 61.xxx.xx.xx 通
ping 8.8.8.8 不通

因为宿主机刚才安装时关了iptables,所以不通

5.宿主机设置

5.1重启服务器
先reboot,xen会自动生成iptables

5.2启动虚拟机
xm create vm1 -c

6.虚传机安装http服务
6.1测试外网
ping 8.8.8.8 通

6.2安装apache
cd /etc/yum.repos.d
wget http://mirrors.163.com/.help/CentOS-Base-163.repo
yum makecache
yum -y install httpd

6.3生成个测试首页
echo ‘vm1’>/var/www/html/index.html
service httpd start
chkconfig httpd on

6.4测试本机
wget 192.168.122.11

–2011-03-31 11:54:23– http://192.168.122.11/
Connecting to 192.168.122.11:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 4 [text/html]
Saving to: `index.html.1′

100%[======================================>] 4 –.-K/s in 0s

2011-03-31 11:54:23 (217 KB/s) – `index.html.1′ saved [4/4]

cat index.html.1
vm1

7.宿主机测试
7.1内存分配了2G给虚传机
cat /proc/meminfo

MemTotal: 14319616 kB
MemFree: 13720696 kB

7.2新增了个网卡

vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:158 errors:0 dropped:0 overruns:0 frame:0
TX packets:1958 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:32
RX bytes:9679 (9.4 KiB) TX bytes:114685 (111.9 KiB)

7.3虚拟机配置文件
cat /etc/xen/vm1

name = “vm1”
uuid = “85386e79-9f79-e243-9b62-3c9da736ae9f”
maxmem = 2048
memory = 2048
vcpus = 2
bootloader = “/usr/bin/pygrub”
on_poweroff = “destroy”
on_reboot = “restart”
on_crash = “restart”
disk = [ “tap:aio:/opt/vm1/vm1.img,xvda,w” ]
vif = [ “mac=00:16:36:47:a2:89,bridge=virbr0,script=vif-bridge” ]

7.4xend配置文件
cat /etc/xen/xend-config.sxp |grep -v “^#”|grep -v ^$

(xend-unix-server yes)
(xend-unix-path /var/lib/xend/xend-socket)
(xend-relocation-hosts-allow ‘^localhost$ ^localhost\\.localdomain$’)
(network-script network-bridge)
(vif-script vif-bridge)
(dom0-min-mem 256)
(dom0-cpus 0)

(vncpasswd ”)
(keymap ‘en-us’)

7.5虚传机列表
xm list

Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 13984 8 r—– 40.1
vm1 1 2047 2 -b—- 5.5

7.6 测试80端口http服务
wget 192.168.122.11

2011-03-31 11:55:17 (178 KB/s) – `index.html’ saved [4/4]

也没有问题

8.客户端测试
在本地电脑浏览器中输入61.xxx.xx.xx
无法连接

9.宿主机设置
9.1打开ip转发
echo ‘1’ > /proc/sys/net/ipv4/ip_forward
vi /etc/sysctl.conf

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

9.2转发公网80端口至虚传机80端口
公网ip:61.xxx.xx.xx
eht0为公网网卡
虚传机ip:192.168.122.11

iptables -A PREROUTING -t nat -p tcp -i eth0 –dport 80 -j DNAT –to 192.168.122.11:80
下面可加可不加
iptables -A POSTROUTING -t nat -d 192.168.122.11 -p tcp -m tcp –dport 80 -j SNAT –to 61.xxx.xx.xx

9.3增加forward充许
iptables -nL

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all — 0.0.0.0/0 192.168.122.0/24 state RELATED,ESTABLISHED
ACCEPT all — 192.168.122.0/24 0.0.0.0/0
ACCEPT all — 0.0.0.0/0 0.0.0.0/0
REJECT all — 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all — 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
ACCEPT all — 0.0.0.0/0 0.0.0.0/0 PHYSDEV match –physdev-in vif1.0
ACCEPT all — 0.0.0.0/0 0.0.0.0/0 PHYSDEV match –physdev-in vif2.0

reject-with icmp-port-unreachable这两条规则禁止了方问
解决方式一:
执行下面命令删除规则(不推荐)

iptables -D FORWARD 4
iptables -D FORWARD 4

解决方式二:
增加新的充许规则

iptables -I FORWARD -i eth0 -o virbr0 -p tcp -m state –state NEW -j ACCEPT



iptables -I FORWARD -o virbr0 -j ACCEPT

宿主最后的iptables

# Generated by iptables-save v1.3.5 on Thu Mar 31 15:33:44 2011
*filter
:INPUT DROP [72:2903]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [24:2973]
-A INPUT -i virbr0 -p udp -m udp –dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp –dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp –dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp –dport 67 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/255.0.0.0 -i ! lo -j DROP
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 3306 -j ACCEPT
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT
-A INPUT -p udp -m udp –dport 123 -j ACCEPT
-A FORWARD -i eth0 -o virbr0 -p tcp -m state –state NEW -j ACCEPT
-A FORWARD -d 192.168.122.0/255.255.255.0 -o virbr0 -m state –state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/255.255.255.0 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT –reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT –reject-with icmp-port-unreachable
-A FORWARD -i eth0 -o virbr0 -p tcp -m state –state NEW -j ACCEPT
-A FORWARD -m physdev –physdev-in vif1.0 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
COMMIT
# Completed on Thu Mar 31 15:33:44 2011
# Generated by iptables-save v1.3.5 on Thu Mar 31 15:33:44 2011
*nat
:PREROUTING ACCEPT [15745:680363]
:POSTROUTING ACCEPT [195:14508]
:OUTPUT ACCEPT [191:14292]
-A PREROUTING -i eth0 -p tcp -m tcp –dport 80 -j DNAT –to-destination 192.168.122.11:80
-A POSTROUTING -s 192.168.122.0/255.255.255.0 -d ! 192.168.122.0/255.255.255.0 -p tcp -j MASQUERADE –to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/255.255.255.0 -d ! 192.168.122.0/255.255.255.0 -p udp -j MASQUERADE –to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/255.255.255.0 -d ! 192.168.122.0/255.255.255.0 -j MASQUERADE
COMMIT
# Completed on Thu Mar 31 15:33:44 2011
# Generated by iptables-save v1.3.5 on Thu Mar 31 15:33:44 2011
*mangle
:PREROUTING ACCEPT [51572:51647208]
:INPUT ACCEPT [35843:50960353]
:FORWARD ACCEPT [214:22186]
:OUTPUT ACCEPT [31200:2591886]
:POSTROUTING ACCEPT [31414:2614072]
COMMIT
# Completed on Thu Mar 31 15:33:44 2011

客户端再次测试成功访问

9.4开机后添加iptables
xen的iptables规则是在开机后添加到现有的iptables中,其中有一条是清空FORWARD链,所以要重新再加一次
echo ‘iptables -A PREROUTING -t nat -p tcp -i eth0 –dport 80 -j DNAT –to 192.168.122.11:80’ >> /etc/rc.local
echo ‘iptables -I FORWARD -i eth0 -o virbr0 -p tcp -m state –state NEW -j ACCEPT’ >> /etc/rc.local

vi /opt/shell/vm_iptables.sh

#!/bin/sh
IPTABLES=/sbin/iptables

KERNEL=`/bin/uname -r`

if [ ${KERNEL: -3} = “xen” ]
then
#vm1 web
$IPTABLES -A PREROUTING -t nat -p tcp -i eth0 –dport 80 -j DNAT –to 192.168.122.11:80

#vm1 ssh
$IPTABLES -A INPUT -p tcp -m tcp –dport 7022 -j ACCEPT
$IPTABLES -A PREROUTING -t nat -p tcp -i eth0 –dport 7022 -j DNAT –to 192.168.122.11:22
$IPTABLES -I FORWARD -i eth0 -o virbr0 -p tcp -m state –state NEW -j ACCEPT
else
#nothing
exit
fi

chmod 750 /opt/shell/vm_iptables.sh
echo ‘/opt/shell/vm_iptables.sh’ >> /etc/rc.local

9.5让虚传机随宿主启动
cd /etc/xen/auto
ln -s ../vm1 ./vm1

9.6重启宿主并测试

四、安装提示
注意
1.安装源建议使用本地的http或nfs服务,并打开相应端口
2.virt-install后面带上–bridge=virbr0
3.默认网关为192.168.122.1,虚拟机ip要在一个网段
配置在/usr/share/libvirt/networks/default.xml
4.虚拟机首次重启乱码,稍等一会后会自动关闭
5.虚拟机开启http服务后注意打相应iptables端口
6.宿主机增加iptables并放在rc.local中

iptables -A PREROUTING -t nat -p tcp -i eth0 –dport 80 -j DNAT –to 192.168.122.11:80
iptables -I FORWARD -i eth0 -o virbr0 -p tcp -m state –state NEW -j ACCEPT

提示
1.开启虚拟机并进入
xm create vm1 -c
2.立即终止一个虚传机
xm destroy vm1
3.进入虚拟机
xm console vm1
4.跳出虚拟机
ctrl+]
5.重排虚拟机id
/etc/init.d/xend restart
6.完整删除虚拟机
这个没有找到
7.移除xen
yum groupremove Virtualization

参考:
http://caishu.name/content/%E4%BD%BF%E7%94%A8xm%E5%9C%A8centos%E4%B8%8A%E5%AE%89%E8%A3%85xen%E7%9A%84%E8%99%9A%E6%8B%9F%E6%9C%BA
http://wiki.kartbuilding.net/index.php/Xen_Networking
http://cooker.techsnail.com/index.php/XEN,_KVM,_Libvirt_and_IPTables#The_default_iptables_rules_on_a_XEN_physical_host

Posted in 技术, 虚拟化/xen.

Tagged with , .


linux网络测试速度工具

一.perl 版ping
可以评测电信、网通和教育网络的ping值质量
支持平均速度输出排序
可以定义测试时间
输出文件需在脚本里改

./ping.pl
Useage: ./ping.pl ctc|cnc|edu minutes [-s]

For Example:
./ping.pl ctc 10

Please report bug , Thank you!

ping(perl)下载

沈阳联通滑翔机房测试结果
输出结果样式范例:
长春网通 5.72 0.00%
第一栏所在地,第二栏该时间段内平均ping的ms值,最后是丢包率
网通速度

长春网通 5.72 0.00%
大连网通 6.80 0.00%
福建福州网通 65.55 0.00%
广东网通 0.00 100.00%
广西南宁网通 66.45 0.00%
哈尔滨网通 32.50 0.00%
河北石家庄网通 27.90 0.00%
河北网通1 24.45 0.00%
河北网通2 24.25 0.00%
河南淮阳网通 23.55 0.00%
黑龙江哈尔滨网通 29.40 0.00%
黑龙江网通 30.05 0.00%
湖北网通 21.40 0.00%
吉林长春网通 15.45 0.00%
江苏南京网通 53.05 0.00%
江苏网通 0.00 100.00%
金华网通 54.10 0.00%
开封网通 35.50 0.00%
辽宁大连网通 0.82 0.00%
辽宁网通 4.81 0.00%
内蒙古呼和浩特网通 25.80 0.00%
内蒙古网通 0.00 100.00%
青岛网通 43.50 0.00%
山东威海网通 32.15 0.00%
山西太原网通 36.85 0.00%
山西网通 21.90 0.00%
陕西西安网通 96.10 0.00%
上海网通 65.90 0.00%
四川成都网通 54.45 0.00%
四川网通 0.00 100.00%
天津网通 33.95 0.00%
襄樊网通 66.00 0.00%
云南昆明网通 81.85 0.00%
浙江湖州网通 57.15 0.00%
中国网通北京网通 19.80 0.00%
中国网通骨干网 0.00 100.00%
重庆网通 56.65 0.00%
淄博网通 20.60 0.00%

电信速度

安徽电信 0.00 100.00%
安徽合肥电信 0.00 100.00%
北京互联星空_西安电信 175.00 0.00%
福建福州电信 57.20 0.00%
福建泉州 0.00 100.00%
甘肃互联星空_甘肃电信 212.00 0.00%
广东电信 0.00 100.00%
广东互联星空_广州电信 45.30 0.00%
广西互联星空_南宁电信 0.00 100.00%
贵州互联星空_贵阳电信 133.00 0.00%
海南互联星空_海口电信 87.70 0.00%
河北石家庄电信 0.00 100.00%
河南电信 220.00 0.00%
河南互联星空_郑州电信 203.00 0.00%
黑龙江互联星空_哈尔滨电信 0.00 100.00%
湖北互联星空_湖北电信 211.00 0.00%
湖南电信 0.00 100.00%
吉林互联星空_长春电信 0.00 100.00%
江西电信 158.00 0.00%
江西南昌电信 0.00 100.00%
辽宁沈阳电信 189.00 0.00%
绵阳电信 239.00 0.00%
南充电信 240.00 0.00%
内蒙古互联星空_呼和浩特电信 187.00 0.00%
宁夏互联星空_石嘴山电信 0.00 100.00%
青岛电信 158.00 0.00%
青海互联星空_西宁电信 0.00 100.00%
山东电信 171.00 0.00%
山东互联星空_济南电信 0.00 100.00%
陕西互联星空_西安电信 196.00 0.00%
陕西渭南 0.00 100.00%
汕头电信 54.40 0.00%
上海电信1 146.00 0.00%
上海电信2 145.00 0.00%
上海热线 213.00 0.00%
绍兴电信 154.00 0.00%
深圳电信 56.10 0.00%
四川互联星空_成都电信 0.00 100.00%
天津电信 0.00 100.00%
天津互联星空_天津电信 167.00 0.00%
西藏互联星空_拉萨电信 246.00 0.00%
新疆互联星空_阿克苏电信 251.00 0.00%
云南互联星空_曲靖电信 0.00 100.00%
浙江互联星空_杭州电信 149.00 0.00%
重庆电信 132.00 0.00%

教育网速度

北京航空航天大学 106.48 0.00%
北京清华大学 110.86 0.00%
甘肃兰州西北师范大学 136.28 0.00%
广州华南农业大学 132.78 0.00%
湖北武汉华中科技大学 121.32 0.00%
陕西西安交通大学 132.62 0.00%
上海交通大学 134.56 0.00%
四川成都西南交通大学 144.15 0.00%
云南昆明教育网 99.77 0.00%

二.python版ping
可以评测电信、网通和教育网络的ping值质量
可以定义测试时间
可以定义输出文件
文件为utf8,碰到乱码可以先另存为ansi

./testping_net_quality.py
USEAGE:
./testping_net_quality.py -n CNC|CTC|EDU [-t MINs] [-f file]
CNC 网通线路; CTC 电信线路; EDU 教育网;
-t MINs 测试的时间;默认为10分钟;
-f file 输出结果到文件;默认为当前目录文本文件ping.result
-h|-?, 帮助信息
for example:
./testping_net_quality.py -n CTC -t 60
在测试网络所在主机上执行以上指令表示测试网络为电信,测试时间1小时;

testping_net_quality(python)下载

沈阳联通滑翔机房测试结果
输出结果样式范例:
218.104.32.106 江苏网通 29.24 0.15
第一栏IP,第二栏所在地,第三栏该时间段内平均ping的ms值,最后是丢包率;

网通速度

218.104.32.106 江苏网通 29.24 0.15
60.31.195.1 内蒙古呼和浩特网通 29.15 0.15
221.8.96.1 吉林长春网通 28.82 0.15
218.7.249.154 黑龙江哈尔滨网通 28.82 0.14
222.138.109.1 开封网通 29.96 0.15
58.19.183.1 襄樊网通 28.94 0.16
210.52.149.2 湖北网通 28.77 0.16
221.10.216.98 四川网通 28.15 0.16
60.209.5.254 青岛网通 28.90 0.15
60.31.255.115 内蒙古网通 30.48 0.12
218.107.56.1 广东网通 28.30 0.17
202.99.160.1 河北网通1 28.23 0.16
221.3.131.1 云南昆明网通 29.30 0.16
221.5.196.1 重庆网通 29.83 0.16
202.108.100.166 中国网通北京网通 29.17 0.15
218.59.169.109 山东威海网通 29.58 0.13
221.8.18.8 长春网通 29.53 0.14
221.192.1.1 河北石家庄网通 29.50 0.14
60.210.17.1 淄博网通 29.31 0.14
218.26.176.1 山西太原网通 29.53 0.14
202.99.192.68 山西网通 29.03 0.15
202.99.160.68 河北网通2 29.49 0.13
202.97.224.68 黑龙江网通 28.80 0.15
60.12.166.1 金华网通 29.40 0.13
221.10.239.1 四川成都网通 29.78 0.12
221.11.1.1 陕西西安网通 29.93 0.12
60.12.193.1 浙江湖州网通 30.34 0.12
218.25.255.1 辽宁大连网通 29.02 0.13
220.248.112.1 上海网通 30.42 0.12
221.208.172.1 哈尔滨网通 30.48 0.12
58.240.48.43 江苏南京网通 30.81 0.12
218.69.33.1 天津网通 31.34 0.11
58.22.97.1 福建福州网通 31.31 0.11
202.96.69.38 大连网通 31.00 0.11
202.111.148.1 河南淮阳网通 30.90 0.11
60.18.94.1 辽宁网通 29.34 0.15
219.158.28.121 中国网通骨干网 30.07 0.13
221.7.129.163 广西南宁网通 30.55 0.13

电信速度

219.148.197.6 辽宁沈阳电信 89.43 0.44
61.134.40.138 陕西渭南 73.75 0.46
221.236.17.1 四川互联星空_成都电信 205.00 0.00
219.159.67.2 广西互联星空_南宁电信 136.67 0.33
61.140.60.90 广东电信 102.50 0.50
218.16.239.129 汕头电信 103.73 0.33
219.141.62.111 贵州互联星空_贵阳电信 109.20 0.29
61.152.188.1 上海电信1 95.55 0.38
219.147.130.76 黑龙江互联星空_哈尔滨电信 84.93 0.44
219.149.194.31 吉林互联星空_长春电信 85.93 0.44
61.145.125.229 广东互联星空_广州电信 87.15 0.36
61.131.11.1 福建泉州 79.89 0.42
58.56.19.129 山东电信 171.00 0.00
219.148.162.4 内蒙古互联星空_呼和浩特电信 81.84 0.43
202.102.192.80 安徽合肥电信 76.38 0.47
219.148.62.194 河北石家庄电信 104.44 0.39
61.139.37.1 南充电信 90.98 0.41
218.75.107.60 浙江互联星空_杭州电信 91.34 0.40
202.100.109.157 宁夏互联星空_石嘴山电信 81.41 0.47
60.190.223.1 绍兴电信 85.13 0.45
220.179.251.234 安徽电信 81.08 0.48
221.238.193.1 天津互联星空_天津电信 77.40 0.50
222.173.123.1 青岛电信 80.90 0.48
219.150.32.184 天津电信 77.53 0.50
61.129.51.254 上海电信2 80.23 0.48
58.53.192.150 湖北互联星空_湖北电信 85.41 0.46
220.175.8.1 江西电信 113.60 0.40
61.128.101.1 新疆互联星空_阿克苏电信 95.38 0.43
218.1.64.33 上海热线 99.54 0.41
218.30.85.83 陕西互联星空_西安电信 103.02 0.40
202.109.204.150 福建福州电信 101.55 0.39
61.166.150.110 云南互联星空_曲靖电信 98.37 0.41
61.139.33.1 绵阳电信 103.24 0.39
60.164.225.1 甘肃互联星空_甘肃电信 106.44 0.38
218.77.178.229 海南互联星空_海口电信 106.77 0.37
219.150.150.1 河南互联星空_郑州电信 110.25 0.36
219.146.11.20 山东互联星空_济南电信 107.27 0.38
218.30.64.121 北京互联星空_西安电信 81.98 0.44
218.18.104.1 深圳电信 103.20 0.38
202.100.128.201 青海互联星空_西宁电信 100.62 0.40
219.150.150.150 河南电信 104.05 0.39
222.176.2.214 重庆电信 104.85 0.38
61.186.95.92 湖南电信 102.42 0.40
218.65.103.201 江西南昌电信 100.09 0.41
220.182.54.199 西藏互联星空_拉萨电信 104.15 0.40

教育网速度

202.201.48.2 甘肃兰州西北师范大学 126.23 0.03
202.203.128.33 云南昆明教育网 126.06 0.03
202.116.160.33 广州华南农业大学 126.17 0.03
166.111.8.28 北京清华大学 126.08 0.03
202.114.0.242 湖北武汉华中科技大学 126.15 0.03
202.117.0.20 陕西西安交通大学 126.16 0.03
202.115.64.33 四川成都西南交通大学 126.34 0.03
202.112.128.1 北京航空航天大学 126.28 0.02
202.112.26.34 上海交通大学 126.41 0.02

二个脚本用的测试ip都是一样的.
python输出结果比较整齐,但perl版结果更准确一点.

三.下载测速
通过定时运行+wget下载脚本来记录下载速度

#!/bin/sh
#####################################
# version 0.01
# Last Update: 2011-3-18
# Author: C1G
# Blog: blog.c1gstudio.com
#####################################
#crontab
#10 * * * * cd /home/c1g && /bin/sh download_test.sh > /dev/null 2>&1
#

logfile=./download_`date +%Y%m%d`.log

wget http://mirrors.sohu.com/mysql/MySQL-5.5/MySQL-server-5.5.10-1.linux2.6.i386.rpm -a ${logfile}
# =======telcom=======
#echo ‘xx.xx.xx.xx apply.yingjiesheng.com’ >> /etc/hosts
#echo ‘telcom’ >> ${logfile}
#wget http://mirrors.sohu.com/mysql/MySQL-5.5/MySQL-server-5.5.10-1.linux2.6.i386.rpm -a ${logfile}
#sed -i ‘$d’ /etc/hosts
# =======/telcom=======
/bin/rm -f MySQL-server-5.5.10-1.linux2.6.i386.rpm.*

download_test下载

输出结果

–2011-03-18 12:16:24– http://down.website.com/mysql-5.1.37.tar.gz
Resolving down.website.com… xx.xxx.xxx.x
Connecting to down.website.com|xx.xxx.xxx.x|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 35796850 (34M) [application/octet-stream]
Saving to: `mysql-5.1.37.tar.gz.6′

0K ………. ………. ………. ………. ………. 0% 59.0K 9m51s
50K ………. ………. ………. ………. ………. 0% 233K 6m10s
100K ………. ………. ………. ………. ………. 0% 236K 4m55s
150K ………. ………. ………. ………. ………. 0% 222K 4m20s

34850K ………. ………. ………. ………. ………. 99% 118K 1s
34900K ………. ………. ………. ………. ………. 99% 233K 0s
34950K ……. 100% 7.28M=5m20s
2011-03-18 12:21:45 (109 KB/s) – `mysql-5.1.37.tar.gz.6′ saved [35796850/35796850]

四.其它工具
1.系统自带的ping,tracert,wget等命令

2.smokeping
Smokeping 安装配置
http://bbs.linuxtone.org/thread-4768-1-1.html

3.第三方测速网站
世界网络
http://www.linkwan.com/gb/

参考:
http://bbs.linuxtone.org/thread-399-1-1.html

Posted in IDC, shell, 其它, 技术.

Tagged with , , .


discuzx强化词语过滤功能

discuzx 1.5 词语过滤
由于广告贴横行,现需把所有包含数字的贴子放入审核列表.

一.修改词语长度
默认长度为3,现在改成1.
source\admincp\admincp_misc.php
395行,把3改成1

if(strlen($newfind) < 1) { $ignorecount ++; continue;

517行和537行,3改成1

if(strlen($val) < 1) { cpmsg('censor_keywords_tooshort', '', 'error'); }

二.让审核和禁止关键字支持正则

审核和禁止支持简单正则,如”a{1}s{2}s”.
像审核qq号和手机时用”\d{3,11}”就不支持.
查看程序发现,当正则带上”/”并且有普通过滤时就把正则给覆盖了,造成不能正确过滤.

function\cache\cache_censor.php
修改23行和27行

function build_cache_censor() {
$query = DB::query(“SELECT find, replacement, extra FROM “.DB::table(‘common_word’));

$banned = $mod = array();
$data = array(‘filter’ => array(), ‘banned’ => ”, ‘mod’ => ”);
while($censor = DB::fetch($query)) {
if(preg_match(‘/^\/(.+?)\/$/’, $censor[‘find’], $a)) {
switch($censor[‘replacement’]) {
case ‘{BANNED}’:
#$data[‘banned’][] = $censor[‘find’];
$banned[] = preg_replace(“/^\/(.+?)\/$/”, “\\1”, $censor[‘find’]);
break;
case ‘{MOD}’:
//$data[‘mod’][] = $censor[‘find’];
$mod[] = preg_replace(“/^\/(.+?)\/$/”, “\\1”, $censor[‘find’]);
break;
default:
$data[‘filter’][‘find’][] = $censor[‘find’];
$data[‘filter’][‘replace’][] = preg_replace(“/\((\d+)\)/”, “\\\\1”, $censor[‘replacement’]);
break;
}
} else {
$censor[‘find’] = preg_replace(“/\\\{(\d+)\\\}/”, “.{0,\\1}”, preg_quote($censor[‘find’], ‘/’));
switch($censor[‘replacement’]) {
case ‘{BANNED}’:
$banned[] = $censor[‘find’];
break;
case ‘{MOD}’:
$mod[] = $censor[‘find’];
break;
default:
$data[‘filter’][‘find’][] = ‘/’.$censor[‘find’].’/i’;
$data[‘filter’][‘replace’][] = $censor[‘replacement’];
break;
}
}
}
if($banned) {
$data[‘banned’] = ‘/(‘.implode(‘|’, $banned).’)/i’;
}
if($mod) {
$data[‘mod’]= ‘/(‘.implode(‘|’, $mod).’)/i’;
}
if(!empty($data[‘filter’])) {
$temp = str_repeat(‘o’, 7); $l = strlen($temp);
$data[‘filter’][‘find’][] = str_rot13(‘/1q9q78n7p473′.’o3q1925oo7p’.’5o6sss2sr/v’);
$data[‘filter’][‘replace’][] = str_rot13(str_replace($l, ‘ ‘, ‘****7JR7JVYY7JVA7’.
‘GUR7SHGHER7****\aCbjrerq7ol7Pebffqnl7Qvfphm!7Obneq7I’)).$l;
}
save_syscache(‘censor’, $data);
}

三.让常用的数字内容进入审核
第一个表示所有数字

/\d{1,}/={MOD}
壹={MOD}
贰={MOD}
叁={MOD}
肆={MOD}
伍={MOD}
陆={MOD}
柒={MOD}
捌={MOD}
玖={MOD}
零={MOD}
一={MOD}
二={MOD}
三={MOD}
四={MOD}
五={MOD}
六={MOD}
七={MOD}
八={MOD}
九={MOD}
0={MOD}
1={MOD}
2={MOD}
3={MOD}
4={MOD}
5={MOD}
6={MOD}
7={MOD}
8={MOD}
9={MOD}
0={MOD}
①={MOD}
②={MOD}
③={MOD}
④={MOD}
⑤={MOD}
⑥={MOD}
⑦={MOD}
⑧={MOD}
⑨={MOD}

四, “词语过滤”生成缓存文件
通过后台的缓存更新不能即时的生成缓存文件.
当缓存机制用文件方式:
1.删除data\cache\cache_censor.php
2.在后台改动下”词语过滤”中的词语,并提交.让”pre_common_syscache”表中cname=censor字段,pre_common_word表内容发生改动.
3.刷新发表贴子的页面,产生data\cache\cache_censor.php

Posted in Discuz/Uchome/Ucenter, 其它.

Tagged with , .


快速查看Linux系统软硬件配置bash


wget http://aspersa.googlecode.com/svn/trunk/summary
chmod a+x summary
./summary

用root用户运行在系统信息,内存,磁盘等方面显示会更详细点

# Aspersa System Summary Report ##############################
Date | 2011-02-24 03:40:36 UTC (local TZ: CST +0800)
Hostname | c1gstudio
Uptime | 10:33, 1 user, load average: 3.52, 3.26, 3.32
System | Dell Inc.; PowerEdge R410; vNot Specified ()
Service Tag | xxxxxxx
Platform | Linux
Release | CentOS release 5.5 (Final)
Kernel | 2.6.18-194.el5
Architecture | CPU = 64-bit, OS = 64-bit
Threading | NPTL 2.5
Compiler | GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-48).
SELinux | Disabled
Virtualized | No virtualization detected
# Processor ##################################################
Processors | physical = 2, cores = 8, virtual = 16, hyperthreading = yes
Speeds | 16×2261.061
Models | 16xIntel(R) Xeon(R) CPU E5520 @ 2.27GHz
Caches | 16×8192 KB
# Memory #####################################################
Total | 11.72G
Free | 5.67G
Used | physical = 6.05G, swap = 0.00k, virtual = 6.05G
Buffers | 516.82M
Caches | 2.84G
Dirty | 6724 kB
UsedRSS | 9.8G
Swappiness | vm.swappiness = 60
DirtyPolicy | vm.dirty_ratio = 40, vm.dirty_background_ratio = 10
Locator Size Speed Form Factor Type Type Detail
========= ======== ================= ============= ============= ===========
DIMM_A1 4096 MB 1333 MHz DIMM DDR3 Synchronous
DIMM_A2 4096 MB 1333 MHz DIMM DDR3 Synchronous
DIMM_B1 4096 MB 1333 MHz DIMM DDR3 Synchronous
DIMM_B2 4096 MB 1333 MHz DIMM DDR3 Synchronous
DIMM_A3 {EMPTY} Unknown DIMM DDR3 Synchronous
DIMM_A4 {EMPTY} Unknown DIMM DDR3 Synchronous
DIMM_B3 {EMPTY} Unknown DIMM DDR3 Synchronous
DIMM_B4 {EMPTY} Unknown DIMM DDR3 Synchronous
# Mounted Filesystems ########################################
Filesystem Size Used Type Opts Mountpoint
/dev/mapper/VolGroup00-LogVol01 9.7G 2% ext3 rw /tmp
/dev/mapper/VolGroup00-LogVol02 58G 21% ext3 rw /
/dev/mapper/VolGroup00-LogVol03 196G 11% ext3 rw /opt
/dev/mapper/VolGroup01-Vol01 136G 1% ext3 rw /vm1
/dev/sda1 190M 17% ext3 rw /boot
tmpfs 5.9G 1% tmpfs rw /dev/shm
# Disk Schedulers And Queue Size #############################
sda | [cfq] 128
sdb | [cfq] 128
sr0 | [cfq] 128
# Disk Partioning ############################################
Device Type Start End Size
============ ==== ========== ========== ==================
/dev/sda Disk 300000000000
/dev/sda1 Part 1 25 197406720
/dev/sda2 Part 26 36472 299778554880
/dev/sdb Disk 300000000000
/dev/sdb1 Part 1 36472 299984186880
# Kernel Inode State #########################################
dentry-state | 185384 179820 45 0 0 0
file-nr | 5610 0 1174801
inode-nr | 173045 143
# LVM Volumes ################################################
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 7.91G
LogVol01 VolGroup00 -wi-ao 10.00G
LogVol02 VolGroup00 -wi-ao 59.00G
LogVol03 VolGroup00 -wi-ao 202.28G
Vol01 VolGroup01 -wi-ao 138.00G
# RAID Controller ############################################
Controller | Fusion-MPT SAS
# Network Config #############################################
Controller | Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet (rev 20)
Controller | Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet (rev 20)
FIN Timeout | net.ipv4.tcp_fin_timeout = 60
Port Range | net.ipv4.ip_local_port_range = 1024 65535
# Interface Statistics #######################################
interface rx_bytes rx_packets rx_errors tx_bytes tx_packets tx_errors
========= ========= ========== ========== ========== ========== ==========
lo 3500000000 22500000 0 3500000000 22500000 0
eth0 1000000000 80000000 0 4000000000 70000000 0
eth1 1500000000 10000000 0 4000000000 15000000 0
sit0 0 0 0 0 0 0
virbr0 0 0 0 450 6 0
# Network Connections ########################################
Connections from remote IP addresses
1.80.74.240 1
1.80.133.200 4
1.85.0.140 2
14.104.71.204 1
14.208.109.44 10
14.210.135.2 2
24.141.8.153 6
27.17.180.165 1
27.17.194.85 7
Connections to local IP addresses
61.xxx.xxx.xx 3000
122.xxx.xxx.xx 1000
127.0.0.1 3000
192.168.0.21 2500
Connections to top 10 local ports
80 4000
9000 3000
9354 1
9356 1
9358 1
9360 1
9362 1
9365 1
9366 1
9368 1
States of connections
CLOSING 1
ESTABLISHED 2500
FIN_WAIT1 200
FIN_WAIT2 350
LAST_ACK 100
LISTEN 7
SYN_RECV 15
TIME_WAIT 6000
# Top Processes ##############################################
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4893 nobody 16 0 254m 73m 55m S 58.7 0.6 8:53.18 php-cgi
4879 nobody 16 0 260m 79m 57m R 47.0 0.7 8:56.18 php-cgi
4896 nobody 16 0 252m 71m 55m S 35.2 0.6 8:55.26 php-cgi
4866 nobody 16 0 254m 74m 56m S 23.5 0.6 8:59.46 php-cgi
4890 nobody 16 0 256m 76m 58m S 23.5 0.6 8:52.82 php-cgi
4851 nobody 16 0 256m 75m 56m S 21.5 0.6 9:02.35 php-cgi
4859 nobody 16 0 254m 74m 58m S 21.5 0.6 9:02.85 php-cgi
4868 nobody 16 0 256m 76m 58m S 21.5 0.6 8:45.38 php-cgi
4826 nobody 16 0 253m 73m 56m S 19.6 0.6 8:41.44 php-cgi
# Simplified and fuzzy rounded vmstat (wait please) ##########
procs —swap– —–io—- —system—- ——–cpu——–
r b si so bi bo ir cs us sy il wa st
6 0 0 0 2 20 60 7 11 2 88 0 0
1 0 0 0 35 0 5000 3500 11 2 87 0 0
5 0 0 0 0 1750 4500 3500 8 2 89 0 0
5 0 0 0 0 80 7000 6000 23 4 73 0 0
4 0 0 0 0 0 9000 8000 22 4 74 0 0
# The End ####################################################

参考:http://bbs.linuxtone.org/thread-8696-1-1.html

Posted in linux 维护优化, 技术.

Tagged with , .


rrdtool数据备份与迁移

迁移cacti后图表一直没出来….

调试注意
1.cacti->System Utilities->Technical Support 调试

2.cacti 0.8.7e 不支持rrdtool-1.4.4
可用1.3x,1.2x

3.rrdtool 显示错误ERROR: This RRD was created on another architecture
不同版本不兼容,32bit和64bit也不兼容

解决不兼容方法
1.在原服务器生成xml文件
创建脚本文件
dumprrdtool.sh

#!/bin/sh

rrddump=”/usr/local/rrdtool/bin/rrdtool dump”
xmldir=/tmp/rraxml
cd /opt/htdocs/www/cacti/rra/
for file in `find ./ -mtime -4 |awk -F\/ “{print $NF}”`
#遍历rra目录,查找近4天修改过的rrd文件;
do
${rrddump} ${file} > ${xmldir}/${file}.xml
done


chmod 775 ./dumprrdtool.sh
mkdir /tmp/rraxml
chmod 777 /tmp/rraxml
./dumprrdtool.sh

2.
脚本会将rra文件转成xml文件
将xml传用ssh或rsync等方式传到新服务器上

3.新服务上还原文件
mkdir /tmp/rraxml
chmod 777 /tmp/rraxml
将xml文件放到/tmp/rraxml下
创建脚本restorerrdtool.sh

#!/bin/sh
rrdrestore=”/usr/local/rrdtool/bin/rrdtool restore”
xmldir=/tmp/rraxml/
cd ${xmldir}
for file in `find ./ |awk -F\/ ‘{print $NF}’ |sed s/.xml//g`
do
${rrdrestore} ${xmldir}${file}.xml /tmp/rra/${file}
done

mkdir /tmp/rra
chmod 777 /tmp/rra
./restorerrdtool.sh
再将新生的rra文件复制到cacti/rra目录下

参考:
http://hiadmin.com/?p=559

Posted in Cacti, RRDtool, 技术.

Tagged with , .


重新配置CPAN源

[root@c1g ~]# perl -MCPAN -e shell
Terminal does not support AddHistory.

cpan shell — CPAN exploration and modules installation (v1.7602)
ReadLine support available (try ‘install Bundle::CPAN’)

cpan>o conf init

一路回车

Posted in cpan, 技术.

Tagged with .


中国新联通(网通)IDC机房分布及资费标准

中国联通集团IDC运营中心介绍
  为加强联通全网业务的专业化运营和管理,中国联通集团IDC运营中心于2008年3月27日正式成立。在北方10省和上海、广东、江苏、浙江、福建、陕西、重庆、四川、江西、安徽、湖北共21省分公司设立省级IDC运营分中心,在全国四星级以上IDC所在的16个中心城市设有地市级IDC运营分中心。

  主要职能:

  · 负责联通全国IDC业务的运营管理;

  · 负责提出全国IDC经营预算目标和发展策略、规划和实施;

  · 负责全网IDC服务等级评审,全网IDC资源调度;

  · 负责跨省客户签约审核;

  · 负责IDC产品的规划、开发与合作,对新产品进行定价、培训;

  · 负责全网性及国际性大客户业务拓展的支撑;

  · 协助联通IDC品牌的建立和维护;

  · 负责全网流量流向、资源和客户信息等支撑平台的数据统计分析等。

联通机房分布

截止2009年11月25日联通官方公布的共有 13个五星机房及24个四星机房。
其中山东最为历害,有4个接入超过100G的机房,开通时间也比较新,但是代理商很少。
1u 百共的代理价格大概是6000/年。

机房名称 地址 星级水平 详细 机房面积 总接入带宽 机房设计机架数 机房现有机架数 机房开通时间
四川成都IDC 成都市二环路北一段111-114号 四星级 查看 1000平方米 5G   180   2003年6月
沈阳IDC 沈阳市铁西区滑翔路29号 四星级 查看 1000平方米 90G   344   2003年1月
陕西西安IDC 西安市高新区科技六路19号 四星级 查看 1100平方米 40G   200   2008年4月
青岛秦岭路IDC 青岛市苗岭路11号 四星级 查看 2000平方米 200G   503   三楼2001年10月
四楼2009年7月
济南二枢纽IDC 济南市经十路168 四星级 查看 2000平方米 150G   600   2001年4月
内蒙古自治区IDC 呼和浩特市金川开发区联通第二枢纽楼 四星级 查看 5000平方米 40G   500   2005年7月
大连软件园IDC 大连市软件园数码路北段28 四星级 查看 1500平方米 60G   384   2002年
长春二枢纽IDC 长春市硅谷大街3057号联通二枢纽10楼 四星级 查看 1500平方米 40G   250   2007年1月
黑龙江IDC 哈尔滨市南岗区湘江路45号 四星级 查看 5500平方米 40G 1000 400   2007年5月
河南郑州二长枢纽IDC 河南省郑州市北环路40号 四星级 查看 3600平方米 40G 1000 500   2005年1月
河北石家庄IDC 石家庄市东开发区昆仑大街89号 四星级 查看 3500平方米 60G   630   2002年12月
中深国际IDC 深圳市南山区科技园深南花园C座裙楼2楼 四星级 查看 1070平方米 20G   91   2002年1月
广州太阳广场IDC 广州市天河天阳路142-144号太阳广场 四星级 查看 6000平方米 20G   197   2002年11月
深南花园IDC机房 深圳市南山区科技园深南花园C座裙楼2楼 四星级 查看 2470平方米 20G   197   2006年1月
北京亦庄电话局IDC 北京市大兴区中和街1号 四星级 查看 1000平方米 8G   411   2008年
北京西三旗电话局IDC 北京市海淀区西三旗 四星级 查看 760平米 8G   323   2008年
北京西红门电话局IDC 北京大兴区西红门镇内宏康路 四星级 查看 2000平米 20G   804   2008年 
北京石景山电话局IDC 北京市石景山老古城前街甲2号 四星级 查看 590平米 8G    242   2008年
北京上地电话局IDC 北京市海淀区上地信息产业基地 四星级 查看 730平米 8G   321   2008年
北京南苑电话局IDC 北京市丰台区三营门 四星级 查看 1200平米 8G   450   2008年
北京酒仙桥IDC 北京市朝阳区酒仙桥路14号D区1号楼 四星级 查看 4000平米 8G   931   2008年
北京广内电话局IDC 北京市宣武区槐柏树街13号 四星级 查看 460平米 8G   153   2008年
北京东四电话局IDC 北京东四南大街164号 四星级 查看 700平米 20G   264   2008年
山东青岛二枢纽IDC 青岛市辽阳东路15号 五星级 查看 6000平方米 200G 1460 960   2006年3月1日
山东济南担山屯IDC 济南市经十西路京福高速入口西行300米路南 五星级 查看 4500平米 150G 658 458   2009年10月
黑龙江哈尔滨IDC 哈尔滨市南岗区中山路155号 五星级 查看 5000平米 40G 600 500   2002年12月1日
广州科学城IDC 广州萝岗区科学城天丰路11号 五星级 查看 4200平米 20G 1600 230   2007年11月
天津华苑IDC 天津市南开区新技术产业园区华苑产业区梓苑路6号 五星级 查看 18064平米 60G   807   2009年7月
天津滨海IDC 天津市塘沽开发区新城东路和盛达街交口 五星级 查看 3800平米 80G   1343   2005年1月
上海漕河泾IDC 上海市徐汇区钦州北路1089号51号楼 五星级 查看 5500平米 12G 1540 1100   2002年
北京皂君庙IDC 北京市海淀区皂君庙路9号 五星级 查看 3800平米 50G   890   2005年
北京亦庄IDC 北京市亦庄经济技术开发区北环东路1号 五星级 查看 3760 60G   1314    
北京土城IDC 北京市朝阳区土城裕民路乙三号 五星级 查看 4500平米 80G   1108   2005年
北京数字北京大厦IDC 北京市北辰西路12号 五星级 查看 3000平米 20G   1048   2006年
北京三元桥IDC 北京市朝阳区霞光里2号 五星级 查看 400平米 40G   160   2006年
北京电报大楼IDC 北京市西长安街11号电报大楼 五星级 查看 2600平米 60G   887   2005年

 

 

中国联通IDC基础业务资费标准

一、主机托管业务

(一)安装调测费:一次性收取。

1.端口调测费:机位出租中独享端口方式按每个端口300元收取,共享端口方式按照每台机器200元收取;

2.设备安装费:设备安装按照每台设备200元收取,机架出租和VIP专用机房(机笼)出租按每机架1000元收取。

(二)月租费:各省公司根据区域的不同,执行该区域对应的价格体系,并根据IDC等级执行不同档次的价格。

1.空间使用费(含机位费、机架费)

区域分类
用户单台设备高度H
(单位:U)
机位费(元/月/U)
五星级
四星级
三星级
二星级
一星级
AA类、
A类地区
1≤H﹤3
440
350
280
220
180
3≤H﹤7 
400
320
260
200
160
7≤H
350
280
220
180
140
单个标准机架/柜(44U及以下)
10000
8000
6500
5000
4000
VIP机房(机笼)费
对应的机架资费×同等面积公共区域可放置的机架个数×130%
B类、
C类地区
1≤H﹤3
350
280
220
180
140
3≤H﹤7 
320
250
200
160
130
7≤H
280
220
180
140
110
单个标准机架/柜(44U及以下)
8000
6500
5000
4000
3500
VIP机房(机笼)费
对应的机架资费×同等面积公共区域可放置的机架个数×130%

注:(1)机位费指用户托管设备与其他用户设备共享一个机架时用户缴纳的空间资源占用费。计费单元是用户的单台设备高度,如用户托管多台设备,所需交纳的机位费为每台设备按相应设备高度对应费率所得机位费的累加值。(2)机架费指用户独享IDC提供的一个机架/柜时所需交纳的空间资源占用费。

2.端口通信费

区域分类
接入方式
端口通信费(元/月)
五星级
四星级
三星级
二星级
一星级
AA类地区
共享100Mbit/s
1500
1200
1000
800
600
独享10Mbit/s
15000
12000
10000
8000
6000
独享50Mbit/s
60000
48000
38000
30000
24000
独享100Mbit/s
90000
72000
58000
46000
37000
独享1Gbit/s
600000
480000
380000
300000
240000
A类地区
共享100Mbit/s
1200
1000
800
600
500
独享10Mbit/s
12000
10000
8000
6000
5000
独享50Mbit/s
48000
38000
30000
24000
19000
独享100Mbit/s
72000
58000
46000
37000
30000
独享1Gbit/s
480000
380000
300000
240000
190000
B类地区
共享100Mbit/s
1000
800
600
500
400
独享10Mbit/s
10000
8000
6000
5000
4000
独享50Mbit/s
38000
30000
24000
19000
15000
独享100Mbit/s
58000
46000
37000
30000
24000
独享1Gbit/s
380000
300000
240000
190000
150000
C类地区
共享100Mbit/s
800
600
500
400
300
独享10Mbit/s
8000
6000
5000
4000
3000
独享50Mbit/s
30000
24000
19000
15000
12000
独享100Mbit/s
46000
37000
30000
24000
19000
独享1Gbit/s
300000
240000
190000
150000
120000

注:以上资费为中国联通IDC基础业务资费标准,具体项目收费由各省分公司根据本省区域分类和机房星级水平的不同进行方案报价。

Posted in IDC, 其它.

Tagged with , , , , .


Discuz! 7.2 升级至 Discuz! X1.5 记录

Discuz! X1.5 【R20101228】
下载

Discuz!7.2/UCHome2.0/SupeSite7.5 至 Discuz!X1.5正式版 升级教程:
http://www.discuz.net/thread-1887968-1-1.html

    需要UCenter 1.5.2的版本
    升级前创建个存放discuzx的新数据库,然后安装discuzx
    执行convert程序会将原discuz数据重新插入到discuzx库中
    新discuzx中的表名和discuz不同,自有程序需要重新修改
    200万会员,800万贴子,4G数据的论坛转换花了11个小时,新数据库大小略有增加
    升级过程中可能会碰到重复的健值造成升级中断
    安装后默认的sql缓存方式可能有bug,一直卡在pre_common_syscache表的发送中,把百M的内网都占满了,改用file方式后解决.
    eaccelerator加速方式需eaccelerator-0.9.5.3版本,但我尝试了0.9.5.2,0.9.5.3,eaccelerator-0.9.6都不成功
    memcache加速方式大概只用200k数据,有导航菜单等cache丢失现像,效率也不是很好
    discuz7.2中的广告升级后可能会占满cpu,原因不详
    后台计划任务第一次要手工执行下
    discuzx论坛负载比discuz7.2略有上升,目前保持在3左右

nginx rewrite

rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/([a-z]+)-(.+)\.html$ $1/$2.php?rewrite=$3 last;
if (!-e $request_filename) {
return 404;
}

discuz7.2 兼容rewrite

if ($query_string ~* tid=([0-9]+)) {
set $id $1;
rewrite “^(.*)/viewthread.php$” $1/forum.php?mod=viewthread&tid=$id&extra=page%3D&page=1 last;
}
if ($query_string ~* gid=([0-9]+)) {
set $id $1;
rewrite “^(.*)/index.php$” $1/forum.php?gid=$id last;
}
if ($query_string ~* fid=([0-9]+)&filter=type&typeid=([0-9]+)) {
set $id $1;
set $typeid $2;
rewrite “^(.*)/forumdisplay.php$” $1/forum.php?mod=forumdisplay&fid=$id&filter=typeid&typeid=$typeid last;
}
rewrite ^([^\.]*)/archiver/$ $1/forum.php?archiver=1 last;
if ($query_string ~* action=credits) {
rewrite “^(.*)/memcp.php$” $1/home.php?mod=spacecp&ac=credit last;
}
rewrite ^([^\.]*)/attachment.php$ $1/forum.php last;

图片路径修正

cd htdocs/bbs/
ln -s ./static/image ./images
ln -s ./data/attachment/forum ./attachments

Posted in Discuz/Uchome/Ucenter, 其它.

Tagged with , .


PHPExcel在php5.2.10上的bug

Fatal error: Class ‘PHPExcel_Worksheet’ not found in /htdocs/webapp/includes/libs/PHPExcel.php on line 114

PHPExcel.php第114行内容

$this->_workSheetCollection[] = new PHPExcel_Worksheet($this);

PHPExcel使用了自动载入class
PHPExcel/Autoloader.php 第43行输入调试代码

echo $pObjectFilePath;
var_dump(file_exists($pObjectFilePath));
echo “
“;

if ((file_exists($pObjectFilePath) === false) || (is_readable($pObjectFilePath) === false)) {
return false;
}


/htdocs/webapp/includes/libs/PHPExcel/Shared/ZipStreamWrapper.phpbool(true)
/htdocs/webapp/includes/libs/PHPExcel/Worksheet.phpbool(false)

Fatal error: Class ‘PHPExcel_Worksheet’ not found in /htdocs/webapp/includes/libs/PHPExcel.php on line 114

Worksheet.php文件没有存在?
反复检查了php中open_basedir,文件及目录权限,zip扩展,pear都没问题.
并在autoloader前用代码测试文件确实可以检测到.

var_dump(file_exists(‘/htdocs/webapp/includes/libs/PHPExcel/Worksheet.php’));

试了下把ZipStreamWrapper.php禁止载入后就可顺利通过.
注释PHPExcel.php第34行内容

PHPExcel_Autoloader::Register();
//PHPExcel_Shared_ZipStreamWrapper::register();

看来问题确实在这里,再用代码确认下是stream_register_wrapper和file_exists的bug

class VariableStream {
var $position;
var $varname;

function stream_open($path, $mode, $options, &$opened_path)
{
$url = parse_url($path);
$this->varname = $url[“host”];
$this->position = 0;

return true;
}

function stream_read($count)
{
$ret = substr($GLOBALS[$this->varname], $this->position, $count);
$this->position += strlen($ret);
return $ret;
}

function stream_write($data)
{
$left = substr($GLOBALS[$this->varname], 0, $this->position);
$right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
$GLOBALS[$this->varname] = $left . $data . $right;
$this->position += strlen($data);
return strlen($data);
}

function stream_tell()
{
return $this->position;
}

function stream_eof()
{
return $this->position >= strlen($GLOBALS[$this->varname]);
}

function stream_seek($offset, $whence)
{
switch($whence) {
case SEEK_SET:
if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
$this->position = $offset;
return true;
} else {
return false;
}
break;

case SEEK_CUR:
if ($offset >= 0) {
$this->position += $offset;
return true;
} else {
return false;
}
break;

case SEEK_END:
if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
$this->position = strlen($GLOBALS[$this->varname]) + $offset;
return true;
} else {
return false;
}
break;

default:
return false;
}
}
}

var_dump(file_exists(‘/htdocs/webapp/includes/libs/PHPExcel.php’));

stream_register_wrapper(“var”, “VariableStream”)
or die(“Failed to register protocol”);
var_dump(file_exists(‘/htdocs/webapp/includes/libs/PHPExcel.php’));


输出结果

bool(true) bool(false)

解决方法:
1.注释PHPExcel.php第34行内容
PHPExcel_Shared_ZipStreamWrapper::register();

2.更换php版本
目前换成php.5.2.14没有问题

Posted in PHP, 技术.

Tagged with , .


解决nginx access日志中400 bad request 错误

在access.log中有大量400错误,并以每天几百M的速度增加,占用大量空间.
tail -f /opt/nginx/logs/access.log

116.236.228.180 – – [15/Dec/2010:11:00:15 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:15 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:15 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:15 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:15 +0800] “-” 400 0 “-” “-”
119.97.196.7 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
119.97.196.7 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
219.243.95.197 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”
116.236.228.180 – – [15/Dec/2010:11:00:16 +0800] “-” 400 0 “-” “-”

网上大把的文章说是HTTP头/Cookie过大引起的,可以修改nginx.conf中两参数来修正.

client_header_buffer_size 16k;
large_client_header_buffers 4 32k;

修改后

client_header_buffer_size 64k;
large_client_header_buffers 4 64k;

没有效果,就算我把nginx0.7.62升到最新的0.8.54也没能解决.
官方论坛中nginx作者提到空主机头不会返回自定义的状态码,是返回400错误.
http://forum.nginx.org/read.php?2,9695,11560

最后修正如下
改为原先的值

client_header_buffer_size 16k;
large_client_header_buffers 4 32k;

关闭默认主机的日志记录就可以解决问题

server {
listen *:80 default;
server_name _;
return 444;
access_log off;
}

Posted in Nginx, 技术.

Tagged with , .