Archive for the ‘ 服务器技术 ’ Category

DDoS deflate

DDoS deflate是一款免费的用来防御和减轻DDoS攻击的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP.

程序的官方网站:http://deflate.medialayer.com/

站长百科上的词条:DDoS-Deflate

讨论组:DDoS-Deflate

Read more… …

Post Footer automatically generated by wp-posturl plugin for wordpress.

February 23rd, 2010  in 服务器技术 1 Comment »

一个优化my.cnf 的脚本

一个由MySQL职员写的优化脚本,可根据现有配置,系统配置,MySQL的运行情况给出优化建议。

官方地址:http://www.day32.com/MySQL/

安装和运行:

通过SSH执行下列语句:

1. wget http://www.day32.com/MySQL/tuning-primer.sh
2. chmod 755 tuning-primer.sh
3. sh tuning-primer.sh

然后就可以看到结果了,根据建议就可以优化MySQL数据库的配置了。

Post Footer automatically generated by wp-posturl plugin for wordpress.

February 22nd, 2010  in 服务器技术 1 Comment »

用KeePass实现putty自动登录

Putty(点这里下载Putty)是一个很好用的SSH连接的windows程序,一直使用Putty来管理服务器,但是Putty有一个弊端,就是不能保存密码和自动登录。而按照Putty官方的说法,出于安全考虑,也不会增加这个功能。服务器多了以后,每次找到密码,也是比较麻烦的事情。可以自动登录的SSH工具也有,例如SecureCRT,但是用着总是不顺手,而且是收费软件,还挺贵,用盗版的吧,又怕有问题密码被盗。

Read more… …

Post Footer automatically generated by wp-posturl plugin for wordpress.

January 18th, 2010  in 服务器技术 6 Comments »

.htaccess使用要点

网上有一篇流传很广的.htaccess的使用说明,不过存在较多错误,这篇文章主要就是纠正几个重要的错误,同时补充一些其他的重要规则。网上那篇修正后的完整版见: http://kb.idcspy.org/Htaccess

1.Blocking users by IP 根据IP阻止用户访问

这个原文有错误,按照原文设置会得到一个500错误,正确的设置是:

<Files 403.shtml>
order allow,deny
allow from all
</Files>

deny from 1.1.1.1 ;写要封的IP

上面的意思是403.shtml不受影响,下面写要封的IP,原文把顺序搞反了。

这个也可以在cpanel中直接操作。

2.Prevent viewing of .htaccess file 防止.htaccess文件被查看

正确的写法:
<Files .htaccess>

order allow,deny

deny from all

</Files>

这个网上的大部分版本都有错误,大部分版本丢掉了<Files .htaccess> ,结果导致所有文件都被禁止访问。如果用了错误的规则,所有内容都将无法访问。

3.规范www

这个是rewrite的重要应用,原文没有
全部统一到带 www,例如将83blog.com 统一到 www.83blog.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]
全部统一到不带www,例如将 www.idcspy.org 统一到 idcspy.org
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com$ [NC]
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]

wordpress的rewrite规则以及自带了www规范化,会自动将网址定向到后台设置的地址。

4.防止别人的域名解析到自己的独立IP
RewriteEngine On
RewriteCond %{HTTP_HOST} !(^www\.yourdomain\.com$) [NC]
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=301]

这个可以完成如下几个功能:
1.如果你的网站绑定多个域名,为了只使用一个域名,就可以设置如上规则,例如网站绑定了 www.idcspy.org www.enmabiz.com 那么为了防止重复的url,就可以把上面的域名设置为www.idcspy.org,这样来自www.enmabiz.com所有的访问都会重定向到www.idcspy.org
2.如果你用的是独立IP,那么别人就可以把它的域名解析到你的IP上,这个时候可以用这个规则,其他所有解析到你的IP上的域名都会转向到你设置的域名上。

Post Footer automatically generated by wp-posturl plugin for wordpress.

July 6th, 2009  in 网站, 服务器技术 6 Comments »

如何识别物理cpu个数,几个核,是超线程还是多核心

判断依据:
1.具有相同core id的cpu是同一个core的超线程。
2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores。

英文版:
1.Physical id and core id are not necessarily consecutive but they are unique. Any cpu with the same core id are hyperthreads in the same core.
2.Any cpu with the same physical id are threads or cores in the same physical socket.

实例:

LunarPages的CPU信息:

processor        : 0
vendor_id        : GenuineIntel
cpu family        : 15
model                : 4
model name        : Intel(R) Xeon(TM) CPU 3.00GHz
stepping        : 3
cpu MHz                : 3000.881
cache size        : 2048 KB
physical id        : 0
siblings        : 2
core id                : 0
cpu cores        : 1
fdiv_bug        : no
hlt_bug                : no
f00f_bug        : no
coma_bug        : no
fpu                : yes
fpu_exception        : yes
cpuid level        : 5
wp                : yes
flags                : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips        : 6006.73

processor        : 1
vendor_id        : GenuineIntel
cpu family        : 15
model                : 4
model name        : Intel(R) Xeon(TM) CPU 3.00GHz
stepping        : 3
cpu MHz                : 3000.881
cache size        : 2048 KB
physical id        : 0
siblings        : 2
core id                : 0
cpu cores        : 1
fdiv_bug        : no
hlt_bug                : no
f00f_bug        : no
coma_bug        : no
fpu                : yes
fpu_exception        : yes
cpuid level        : 5
wp                : yes
flags                : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips        : 5999.40

processor        : 2
vendor_id        : GenuineIntel
cpu family        : 15
model                : 4
model name        : Intel(R) Xeon(TM) CPU 3.00GHz
stepping        : 3
cpu MHz                : 3000.881
cache size        : 2048 KB
physical id        : 3
siblings        : 2
core id                : 3
cpu cores        : 1
fdiv_bug        : no
hlt_bug                : no
f00f_bug        : no
coma_bug        : no
fpu                : yes
fpu_exception        : yes
cpuid level        : 5
wp                : yes
flags                : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips        : 5999.08

processor        : 3
vendor_id        : GenuineIntel
cpu family        : 15
model                : 4
model name        : Intel(R) Xeon(TM) CPU 3.00GHz
stepping        : 3
cpu MHz                : 3000.881
cache size        : 2048 KB
physical id        : 3
siblings        : 2
core id                : 3
cpu cores        : 1
fdiv_bug        : no
hlt_bug                : no
f00f_bug        : no
coma_bug        : no
fpu                : yes
fpu_exception        : yes
cpuid level        : 5
wp                : yes
flags                : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc pni monitor ds_cpl cid xtpr
bogomips        : 5999.55

显示4个逻辑CPU,通过physical id  ,前面两个逻辑cpu的相同,后面两个的相同,所以有两个物理CPU。前面两个的 core id相同,后面的两个core ID相同,说明这两个CPU都是单核。也就是说两个单核cpu,启用了超线程技术。
通过intel的cpu的参数可以初步判断 使用的是两个 Xeon奔腾4CPU ,有点差。。。。
如何获得CPU的详细信息:

linux命令:cat /proc/cpuinfo

用命令判断几个物理CPU,几个核等:

逻辑CPU个数:
# cat /proc/cpuinfo | grep “processor” | wc -l

物理CPU个数:
# cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l

每个物理CPU中Core的个数:
# cat /proc/cpuinfo | grep “cpu cores” | wc -l

是否为超线程?
如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。

每个物理CPU中逻辑CPU(可能是core, threads或both)的个数:
# cat /proc/cpuinfo | grep “siblings”
其他特征:

目前intel新的多核心cpu都会在后面显示具体的型号数字,例如:

model name        : Intel(R) Xeon(R) CPU           X3230  @ 2.66GHz

说明是 Xeon 3230的cpu,而不显示型号的具体数字的,大部分都是奔腾的CPU

很多主机商都骗人,用奔腾的cpu,却说是多核心的CPU。

探针看到的数据

类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB
类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB
类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB
类型:Intel(R) Xeon(TM) CPU 2.80GHz 缓存:1024 KB

没有具体的型号,缓存1M,一般都是奔腾系列的cpu,或者是intel假双核的cpu,具体要根据上面说的去判断。新的多核心cpu都能看到具体的型号。
另外多核心的xeon的CPU,一般主频都不高,达到2.8和3.0的只有很少的几个高端CPU型号,一般主机商不会用这么好的
大漠孤狼整理,首发站长百科论坛http://bbs.zzbaike.com)转载请注明。

Post Footer automatically generated by wp-posturl plugin for wordpress.

June 4th, 2009  in 服务器技术 4 Comments »

cPanel主机(WHM面板)设置指南之概要

这里讲的是cpanel主机的服务器端面板,也就是whm的设置指南。这个是第一部分,主要讲一下cpanel主机的设置步骤。每一个步骤我们会给出对应 于whm面板使用手册中的详细的使用说明。暂时只写这个设置步骤部分和初始化设置的图片教程,其他部分的详细内容以后再写,在没有写好之前可以参考我们翻 译的使用手册。因为时间问题,这个说明一拖再拖,本来半年之前就准备写的,结果直到今天才正式开始。whm详细的使用教程准备做成视频发布,具体时间未 定。

首先推荐本站翻译的官方教程:WebHost Manager 11使用手册

下面来说明拿到一个cpanel主机(租用)或者是安装好cpanel之后需要做哪些工作:

1.初始化设置  这里设置的内容以后还可以修改,见:http://bbs.idcspy.org/thread-43130-1-1.html

2.Tweak Settings  这部分很重要,涉及到服务器的很多设置,如果是对外销售的主机,设置好之后尽量不要改动,具体设置请参考:http://www.idcspy.org/server-config-tweaksettings.html

3.设置服务器的时区,请根据自己的需要设置,对外销售的主机这项设置好也最好别更改 http://www.idcspy.org/server-config-servertime.html

4.在服务器初始化的时候已经设置过 mysql的root密码,确认此密码不要留空。更改服务器的root密码,足够复杂,此密码最好定期修改http://www.idcspy.org/server-config-change-root-pass.html

5.cpanel和whm的升级设置  ,推荐使用稳定版本  http://www.idcspy.org/server-config-updateconfig.html

6.安全设置 这部分很重要,具体要根据服务器的用途来设置,例如是出售的还是自己使用的。推荐做以下几项设置:禁止除自己ip外的ssh连接 设置方法见 http://www.idcspy.org/security-hac.html 关闭普通用户的c和C++编译器,如果是自己用可以不设置 http://www.idcspy.org/security-compilers.html cPHulk Brute Force保护 http://www.idcspy.org/security-hulk.html

7.设置备份  见 http://www.idcspy.org/backup-config.html

8.重新编译apache PHP,把自己需要的模块编译进去。这个根据自己的实际需求选择,需要什么就编译什么,一般 zend optimizer,GD,Gettext,MySQL “Improved” extension等经常用到。推荐apache版本使用2.2,php版本使用5.2以上的,如果是自己使用推荐开启 deflate,EAccelerator for PHP。这部分的设置见:http://www.idcspy.org/software-update-apache.html 里面的内容以后我们还会重点讲解。

到现在,这台服务器就可以投入使用了。现在看到的这个面板只是服务器的面板,还不能用来建网站,所以还需要新建一个cpanel账户才可以。
新建cpanel账户:http://www.idcspy.org/account-functions-creatnewacct.html
建好账户以后,用你填写的信息登录cpanel面板就可以使用了,和使用一个cpanel的虚拟主机没有什么区别,教程请参考:http://kb.idcspy.org/CPanel

关于账户的设置有两部分,都是很重要的,以后经常会遇到,请大家仔细阅读使用手册中的相关内容:
http://www.idcspy.org/account-info.html
http://www.idcspy.org/account-functions.html

大漠孤狼原创,首发于 美国主机侦探 (www.idcspy.org) 转载请注明

Post Footer automatically generated by wp-posturl plugin for wordpress.

March 20th, 2009  in 虚拟主机, 服务器技术 5 Comments »

IIS,连接数,进程数

国内卖虚拟主机的基本都有一项参数IIS数,而大部分人买虚拟主机的时候也会问主机商,你们的iis数是多少。而且IIS数被作为虚拟主机的一个非常重要的参数。但是奇怪的是,几乎所有的主机商的网站都没有解释IIS数是什么东西。网上流传着一篇很常见的讲解IIS数的文章,几乎和在线人数等同起来(只是框架会多占IIS数),还解释了你的论坛的在线人数为什么达不到虚拟主机的IIS数。正式因为广泛的误解,还有就是很多新手不明白在线人数是怎么回事,甚至很多人就把discuz论坛看到的在线人数和iis等同起来。如果有这样的误解,买空间的时候就会很郁闷了,例如很多空间的iis是50,但是我的论坛可是1000人在线啊,那怎么办啊!可能是出于无奈,主机商的iis越来越大,甚至出来很多不限制iis数的虚拟主机。

要消除误解就要从头说起,结果发现麻烦来了,IIS是什么东西?IIS不就是微软发布的服务器吗,那IIS数是什么,装了多少了IIS服务器?经过查询微软的技术文档,确切的说法应该是IIS并发连接数。但是很多卖虚拟主机的,服务器是apache,怎么也写着IIS数多少,是不是应该写Apache数呢?哈哈,很多人都被搞晕掉了吧,其实站长们就是这样被主机商给搞晕了。。。

这种说法的根源还是来自于windows和iis,iis的并发连接数估计说起来太烦,干脆简称IIS数甚至iis了。关于IIS的并发数,前一段时间看过一些微软的文档,但是因为我不用IIS,也没记住多少,就不继续讨论了,大家到这里只要知道iis数是什么东西就可以了。

web服务器不只是IIS,或者可以这样说,web服务器里IIS算不上主流,国内之所以这么多人卖的服务器都是iis的,我想原因有几个,一个是盗版用习惯了,还有一个更重要的,懂linux和apache的人太少了,所以在早期,国内的虚拟主机市场想找个apache服务器的都难。记得当年,遍地都是ASP的建站程序,到处都是asp空间,找个php的难啊,不过现在已经有很大改观了。

接着说我们的正题,对于apache服务器,再说他的iis数是多少,是不是不伦不类呢?那么应该叫什么呢?我发现,不少主机商现在不写IIS数了,写成并发连接数了,但是因为误解,很多人就把并发连接数和IIS数等同起来,然后和在线人数扯上关系。下面我们分析下apache下这个到底是什么东西?

说起来还要搞清楚两个名词才好继续说,一个是连接数,一个是进程数。准确的定义我也说不好,但是连接数一般指的是tcp连接,这个是linux操作系统的限制,apache没找到对这个的限制,所以我们重点说apache进程数(httpd进程数),其实主机商限制的就是这个,大部分人说的连接数指的也是这个,但是容易让人误解。

首先简单说一下过程,当你访问一个页面的时候,你的浏览器就和服务器建立一个tcp连接,然后apache的一个进程来处理你的请求。访问一个页面可能有多个请求,一般来说页面里的每个文件都对应一个请求,例如一个图片,css文件,js文件。所以访问一个页面会发出多个请求。如果服务器支持持久连接,那么一个连接就可以处理所有请求(在超时时间之内),如果服务器不支持持久连接,那么每一个请求都需要建立一个新的tcp连接。对于前一种情况,apache有一个进程来处理,但是这个进程处理完之后要保留一段时间,以便处理其他请求,直到连接断开;对于后面一种情况,apache完成一个请求之后就终止进程,新的请求建立新的进程。(实际上根据配置,一般有一些闲置的进程,不过我们为了方便的说明问题,不考虑那么多情况)

一般的服务器设置都是支持持久连接的,也就是参数KeepAlive处于启用状态。影响最大进程数的主要配置有:

MaxClient (为了不把大家搞晕,我们只考虑非线程型的MPM(也就是prefork),MaxClients表示可以用于伺服客户端请求的最大子进程数量)

KeepAliveTimeout Apache在关闭持久连接前等待下一个请求的秒数

第一个参数就是进程数的限制,第二个参数表示你的浏览器和apache建立持久连接以后,等待多久断开连接,一般默认的是5s,也就是说,如果5s钟你的浏览器没有发新的请求,服务器就断开与你的持久连接了。而一个持久连接占用一个进程,至于框架会不会占用额外的进程,没搞明白。

进程数可以用下面的公式计算: 总Apache进程数 = KeepAliveTimeout * 每秒种HTTP请求数 / 平均KeepAlive请求

而HTTP请求数就对应日志文件中的请求数(点击数)。

下面我们来做一个估算,假设一种极端的访问情况:浏览器打开一个页面以后不再继续访问其他页面,一直等到服务器断开连接。也就是说一个持久连接对应一个pv,等待5秒钟。对于大部分的页面,服务器执行时间是可以忽略的,也就是近似于一个pv占用5s时间。假设服务器的进程数限制是50个,那么5s可以有50个pv,一天可以有多少pv呢?计算很容易,结果是86万次,每个小时36000.也就是说,进程数限制50,对于大部分的普通网站应用都足够了。

当然实际情况会很复杂,主要有几方面,可能连续访问页面,也就是一个持久连接产生多个pv,这个会增加可承受的pv量;访问量分布不均匀,某些时间段大;一个请求花费的时间很长,例如在线看电影,下载软件;同时发起多个连接,这个影响多大正在查资料和实际观察。

最后总结一下,iis数或者更准确的说apache进程数和在线人数相关性不大,如果要找一个准确的参数,应该是日志中的点击数。在线人数最不靠谱,如果关心这个,请查看服务器的活跃连接,这个才是真的“在线”的人;独立IP数次之,也不靠谱,因为不知道每人访问多少页面,每个页面多少请求;PV数已经很接近了,但是不确定性还是很大。

别用discuz的在线人数衡量服务器的负载,尤其是在你都不知道站长设了多久的时间的时候,很多站长为了好看,在线时间有设置一个月的,其实那些人都不知道“死”了多久了。即使是设置的15分钟,看了上面的分析,你也清楚不确定性有多大了。

关于本文:虽然做网站很久,但是真真接触apache服务器的时间不长,文中可能有不少错误,也有不少忽略了其他设置,只关注几个最主要的参数。如果您发现哪里有错误,请告知我。这个不是技术文章,只是想让买空间的站长了解一下,别被误导。IIS我不熟悉,关于IIS的并发连接数等我熟悉之后再说,不过有一点是确定的,不会把超时时间设置为15分钟,这个要是遇到ddos就挂定了。

大漠孤狼原创(www.83blog.com),转载请注明。

Post Footer automatically generated by wp-posturl plugin for wordpress.

February 2nd, 2009  in 服务器技术 10 Comments »

Apache2.2中文文档电子书(PDF+在线版)

Apache2.2中文文档翻译自官方文档,由金步国翻译,为方便大家阅读,我们做了在线版的镜像以及PDF格式的电子书。

文档主要内容:
Apache服务器安装配置
Apache服务器使用手册
Apache服务器模块介绍
Apache服务器开发者文档
Apache服务器在其他平台的使用
常见问题

在线版文档:http://doc.zzbaike.com/apache/2-2/
PDF电子书: http://doc.zzbaike.com/apache/book/apache2.2.pdf
如果要下载PDF电子书,请单击右键,然后选择另存为就可以保存了。

本电子书有详细的书签系统,阅读方便,欢迎转载,本站保留制作人权,无偿转让使用权

由于文档内部链接太多,转成PDF以后比较大,约7M。

Post Footer automatically generated by wp-posturl plugin for wordpress.

January 22nd, 2009  in 服务器技术 2 Comments »