web服务器安全设置

web服务器安全设置,第1张

Web服务器攻击常利用Web服务器软件和配置中的漏洞,web服务器安全也是我们现在很多人关注的一点,那么你知道web服务器安全设置吗?下面是我整理的一些关于web服务器安全设置的相关资料,供你参考。

web服务器安全设置一、IIS的相关设置

删除默认建立的站点的虚拟目录,停止默认web站点,删除对应的文件目录c:inetpub,配置所有站点的公共设置,设置好相关的连接数限制, 带宽设置以及性能设置等其他设置。配置应用程序映射,删除所有不必要的应用程序扩展,只保留asp,php,cgi,pl,aspx应用程序扩展。对于php和cgi,推荐使用isapi方式解析,用exe解析对安全和性能有所影响。用户程序调试设置发送文本错误信息给客户。

对于数据库,尽量采用mdb后缀,不需要更改为asp,可在IIS中设置一个mdb的扩展映射,将这个映射使用一个无关的dll文件如C:WINNTsystem32inetsrvssinc.dll来防止数据库被下载。设置IIS的日志保存目录,调整日志记录信息。设置为发送文本错误信息。修改403错误页面,将其转向到其他页,可防止一些扫描器的探测。另外为隐藏系统信息,防止telnet到80端口所泄露的系统版本信息可修改IIS的banner信息,可以使用winhex手工修改或者使用相关软件如banneredit修改。

对于用户站点所在的目录,在此说明一下,用户的FTP根目录下对应三个文件佳,wwwroot,database,logfiles,分别存放站点文件,数据库备份和该站点的日志。如果一旦发生入侵事件可对该用户站点所在目录设置具体的权限,图片所在的目录只给予列目录的权限,程序所在目录如果不需要生成文件(如生成html的程序)不给予写入权限。因为是虚拟主机平常对脚本安全没办法做到细致入微的地步。

方法

用户从脚本提升权限:

web服务器安全设置二、ASP的安全设置

设置过权限和服务之后,防范asp木马还需要做以下工作,在cmd窗口运行以下命令:

regsvr32/u C:\WINNT\System32\wshom.ocx

del C:\WINNT\System32\wshom.ocx

regsvr32/u C:\WINNT\system32\shell32.dll

del C:\WINNT\system32\shell32.dll

即可将WScript.Shell, Shell.application, WScript.Network组件卸载,可有效防止asp木马通过wscript或shell.application执行命令以及使用木马查看一些系统敏感信息。另法:可取消以上文件的users用户的权限,重新启动IIS即可生效。但不推荐该方法。

另外,对于FSO由于用户程序需要使用,服务器上可以不注销掉该组件,这里只提一下FSO的防范,但并不需要在自动开通空间的虚拟商服务器上使用,只适合于手工开通的站点。可以针对需要FSO和不需要FSO的站点设置两个组,对于需要FSO的用户组给予c:winntsystem32scrrun.dll文件的执行权限,不需要的不给权限。重新启动服务器即可生效。

对于这样的设置结合上面的权限设置,你会发现海阳木马已经在这里失去了作用!

web服务器安全设置三、PHP的安全设置

默认安装的php需要有以下几个注意的问题:

C:\winnt\php.ini只给予users读权限即可。在php.ini里需要做如下设置:

Safe_mode=on

register_globals = Off

allow_url_fopen = Off

display_errors = Off

magic_quotes_gpc = On [默认是on,但需检查一遍]

open_basedir =web目录

disable_functions =passthru,exec,shell_exec,system,phpinfo,get_cfg_var,popen,chmod

默认设置com.allow_dcom = true修改为false[修改前要取消掉前面的]

web服务器安全设置四、MySQL安全设置

如果服务器上启用MySQL数据库,MySQL数据库需要注意的安全设置为:

删除mysql中的所有默认用户,只保留本地root帐户,为root用户加上一个复杂的密码。赋予普通用户updatedeletealertcreatedrop权限的时候,并限定到特定的数据库,尤其要避免普通客户拥有对mysql数据库操作的权限。检查mysql.user表,取消不必要用户的shutdown_priv,reload_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非mysql的 其它 信息出去。可以为mysql设置一个启动用户,该用户只对mysql目录有权限。设置安装目录的data数据库的权限(此目录存放了mysql数据库的数据信息)。对于mysql安装目录给users加上读取、列目录和执行权限。

Serv-u安全问题:

安装程序尽量采用最新版本,避免采用默认安装目录,设置好serv-u目录所在的权限,设置一个复杂的管理员密码。修改serv-u的banner信息,设置被动模式端口范围(4001—4003)在本地服务器中设置中做好相关安全设置:包括检查匿名密码,禁用反超时调度,拦截“FTP bounce”攻击和FXP,对于在30秒内连接超过3次的用户拦截10分钟。域中的设置为:要求复杂密码,目录只使用小写字母,高级中设置取消允许使用MDTM命令更改文件的日期。

更改serv-u的启动用户:在系统中新建一个用户,设置一个复杂点的密码,不属于任何组。将servu的安装目录给予该用户完全控制权限。建立一个FTP根目录,需要给予这个用户该目录完全控制权限,因为所有的ftp用户上传,删除,更改文件都是继承了该用户的权限,否则无法操 作文 件。另外需要给该目录以上的上级目录给该用户的读取权限,否则会在连接的时候出现530 Not logged in, home directory does not exist。比如在测试的时候ftp根目录为d:soft,必须给d盘该用户的读取权限,为了安全取消d盘其他文件夹的继承权限。而一般的使用默认的system启动就没有这些问题,因为system一般都拥有这些权限的。

web服务器安全设置五、数据库服务器的安全设置

对于专用的MSSQL数据库服务器,按照上文所讲的设置TCP/IP筛选和IP策略,对外只开放1433和5631端口。对于MSSQL首先需要为sa设置一个强壮的密码,使用混合身份验证,加强数据库日志的记录,审核数据库登陆事件的”成功和失败”.删除一些不需要的和危险的OLE自动存储过程(会造成 企业管理 器中部分功能不能使用),这些过程包括如下:

Sp_OAcreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty

Sp_OAMethod Sp_OASetProperty Sp_OAStop

去掉不需要的注册表访问过程,包括有:

Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue

Xp_regenumvalues Xp_regread Xp_regremovemultistring

Xp_regwrite

去掉其他系统存储过程,如果认为还有威胁,当然要小心drop这些过程,可以在测试机器上测试,保证正常的系统能完成工作,这些过程包括:

xp_cmdshell xp_dirtree xp_dropwebtask sp_addsrvrolemember

xp_makewebtask xp_runwebtask xp_subdirs sp_addlogin

sp_addextendedproc

在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例可防止对1434端口的探测,可修改默认使用的1433端口。除去数据库的guest账户把未经认可的使用者据之在外。 例外情况是master和 tempdb 数据库,因为对他们guest帐户是必需的。另外注意设置好各个数据库用户的权限,对于这些用户只给予所在数据库的一些权限。在程序中不要用sa用户去连接任何数据库。网络上有建议大家使用协议加密的,千万不要这么做,否则你只能重装MSSQL了。

1,Linux下架FTP!!

Linux下一般最常用的工具wu-ftpd.

wu-ftpd的安装非常容易,大多数版本的Linux中都包含了wu-ftpd的rpm软件包,你可以在安装Linux时指定装入。如果你想自行编译源代码,也可以到ftp://ftp.wu-ftpd.org下载最新版本的源代码包。

安装好以后,可以用ckconfig命令来检查是否已经正确安装。在/etc/passwd中可以指定ftp用户的登入目录。

wu-ftpd主要有以下6个配置文件:

ftpaccess(主要配置文件,控制存取权限)

ftpconvertions(配置文件压缩/解压缩转换)

ftpgroups(设定ftp自己定义的群组)

ftphosts(设定个别的用户权限)

ftpservers(设定不同IP/Domain Name以对应到不同的虚拟主机)

ftpusers(设定哪些帐号不能用ftp连线)

下面我们来一一介绍。

⒈/etc/ftpaccess(wu-ftpd的主要配置文件)

class--定义群组,用法如下:

class<种类><用户地址>[<用户地址>……]

由class定义的群组用户才可以连线进来,可以使用多层式的class来规范哪些群组的用户能够从哪些地方上来。这里有三个重要的种类,real、anonymous个guest。real如果没有列在定义中,那么这台机器中任何真实的一般用户都无法用自己的帐号连上来。anonymous如果没有在定义,就表示不让没有帐号的的人连上来。如果有定义guest,那么guest群组的人就可以上来。另外<用户地址>是指ftp上来的用户会用到的IP地址,则可自行设定。以下是一些例子:

class all real,guest,anonymous *

定义了一个名为all的class,包含三种人,所有IP的连线用户(也就是所有人都包括了)

class local real localhost loopback

local这个class说,只有real的用户可以从本机机器连上来

class remote guest,anonymous *

remote这个class包含了从任何地方上来的guest和anonymous用户,但是real用户不算

class rmtuser real !*.example.com

rmtuser这个class包含了从外面来的(除了example.com)真实用户

autogroup--自动对应群组,用法如下:

autogroup[……]

当你定义好的那些同属于一个class的用户,一旦连线上来就会被对应到一个相应的群组下面,这样你就可以用Unix的文件权限对某一群人做限制。

deny--拒绝某些地址连线,用法如下:

deny<拒绝连线的地址><信息文件>

禁止某些机器连线,并显示<信息文件>。例如:

deny 210.62.146.*:255.255.255.254 /etc/reject.msg

guestgroup--设定访客群

guestuser--设定访客帐号

realgroup--设定真实群组

realuser--设定真实帐号

nice--设定给某些class多少优先权,用法如下:

nice

在Linux中,nice的值是-20(最优先)到19(最后处理),这里你可以指定负的值来提高某class的优先顺序。

defumask--设定某class的umask,用法如下:

defumask[]

umask是建立文件时该文件的的权限掩码

tcpwindow--设定tcpwindow的大小

keepalive--设定是否使用TCP SO_KEEPALIVE来控制断线情形

timeout--设定连线超时,用法如下:

timeout accept<秒>

接受连线超时,预设120秒

timeout connect<秒>

连线建立超时,预设120秒

timeout data<秒>

数据传送超时,预设1200秒

timeout idle<秒>

用户发呆超时,预设900秒

file-limit--限制某class只能传几个文件,用法如下:

file-limit[][]

对某个class限制存取文件的数目,包含了in(上传)、out(下载),total raw代表整个传输的结果,不光是数据文件。例如:

file-limit out 20 lvfour

限制lvfour这个class的用户最多只能下载20个文件

byte-limit--限制某class只能传几个字节,用法跟file-limit相似

limit-time--限制一个连线只能持续多久,用法如下:

limit-time{*|anonymous|guest}<分钟>

为了避免有人挂在站上不下来,可以用这个方法限制用户的上线时间,例如:

limit-time guest 5

让guest帐号的用户只能用5分钟

limit--限制某class能同时几人上线,用法如下:

limit<连线数目><时间区段><额满信息文件>

设定某个class在某一时间区段内最多能够几人同时上线,后面是当超过连线数目时要显示的信息。例如:

limit all 32 Any /home/ftp/etc/toomanyuser.msg

限制所有连线在任何时间只能有32个用户,超过则拒绝连线并显示信息

limit levellone 5 Any2300-0600 /home/ftp/etc/toomanyuser.msg

限制levellone这个class的用户在23:00到6:00这段时间内只能有5人连线

noretrieve--设定哪些文件不可下载

noretrieve[absolute/relative][class=]…[-][<文件名>…]

absolute或relative指文件是用绝对路径还是相对路径

allow=retrieve--设定哪些文件可以下载

allow[absolute/relative][class=]…[-][<文件名>…]

loginfails--设置登入错误可尝试的次数

当用户连线时可能打错ID或密码,这个设定可以让他打错几次以后就断线,避免有人用穷举法猜测密码。

private--设定线上是否可以执行SITE GROUP/SITE GPASS

当开放SITE GROUP与SITE GPASS指令时,可以用这两个指令切换到/etc/ftpgroup的群组。一般而言我们不会用到这个功能,以避免安全漏洞。

greeting--显示Server的版本信息,用法如下:

greeting

当用户登入画面显示的server信息,full是预设值,包含版本号以及hostname,brief只有hostname,而terse只有“FTP server ready”的信息。

barnner--设定未进入Login画面之前用户看到的信息,用法如下:

banner<文件路径>

这里叙述了在用户登入时,在还没打ID/Password之前要出现的信息。文件路径指的是相对于真实的路径,而不是相对于ftp的根目录。

host--设定ftp主机名

email--指定ftp管理者的email地址

message--信息文件的设定,用法如下:

message<文件>{<何时>{……}}

这里的文件的路径是相对于ftp的根目录的,“何时”是指当你做了什么动作之后的反应,有几个选择:

login(登入时)

cwd=<目录>(进入某目录时)

class 名称是前面已经定义过的,允许你的信息只对哪些人发出。

而信息文件的内容除了文字以外,还可以使用以下一些事先定义好的代号:

%T(本机时间)

%F(目前分区所剩余的空间)

%C(目前所在的目录)

%E(管理者的E-mail)

%R(客户端主机名称)

%L(本机主机名称)

%U(用户名称)

%M(与我相同class用户允许多少人连线)

%N(与我相同class用户目前有多少人连线)

%B(绝对磁盘限制大小,目前分区(单位blocks))

%b(preferred磁盘限制大小,目前分区(单位blocks))

%Q(目前已使用的blocks)

%I(最大可使用的inodes(+1))

%i(Preferred inodes限制)

%q(目前使用的indoes)

%H(超量使用磁盘空间的时间限制)

%h(超量使用文件数目的时间限制)

readme--通知用户哪些README文件已经更新

log commands--记录用户所使用过的命令,用法如下:

log commands<用户种类>

log transfers--记录用户所传输的文件,用法如下:

log transfers<用户种类><传输方向>

设定有哪些类型的用户传输文件需要记录,包含了inbound(用户上传)和outbound(用户下载),例如:

log transfers anonymous,guest inbound,outbound

log security--记录安全性,用法如下:

log security<用户种类>

特别用于记录某类用户关于noretrive、notar等有关安全性的记录

log syslog--记录到系统的syslog文件

alias--设定目录别名,用法如下:

alias<别名字符串><目录>

cdpath--设定cd更换目录搜索顺序

compress,tar--设定是否自动压缩,用法如下:

compress[……]

tar[……]

定义哪些人可以执行压缩以及tar

shutdown--通知用户要关站了

shutdown<信息文件>

如果信息文件存在的话,当这个文件指定的某时间以后,就会拒绝连线并切断已有的连线,等时间一到就关机。这个信息文件的格式如下:

<年><月><日><时><分><拒绝倒数><断线倒数><文字>

daemon address--指定只监听某个IP地址,用法如下:

daemon address

当你有许多IP的时候,使用这个选项将会取消其它任何虚拟FTP主机的设定。不设定的话,监听所有IP。

virtual--设定虚拟FTP站台

wu-ftpd提供了虚拟主机的功能,也就是说,在同一台机器上提供了不同FTP站台,以主机名称或IP来区分;当然你要用名称的话,还需要跟DNS配合才行。virtual有很多个设定:

virtual

<路径>

可以是主机名或IP地址

root指的是ftp的根目录,banner是欢迎信息,logfile指的是这个虚拟站台的log文件

以下是一些例子:

virtual virtual.com.bj root /home/ftp2

virtual virtual.com.bj banner /etc/vftpbanner.2

virtual virtual.com.bj logfile /etc/viftplog.2

virtual

<字母>

用户可以查到hostname跟管理者email,以下是一些例子:

virtual 210.62.146.50 hostname virtual.site.com.bj

virtual vritual.site.com.bj email ftpown@virtual.site.com.bj

virtual

allow<用户>[<用户>……]

virtual

deny<用户>[<用户>……]

很明显,以上两个选项是设定是否允许连线的,以下是一些例子:

virtual virtual.site.com.bj allow *

virtual virtual.site.com.bj deny badman

virtual

private

本虚拟站台拒绝anonymous用户

defaultserver deny <用户>[<用户>……]

defaultserver allow <用户>[<用户>……]

当我们使用了虚拟主机,原先的deny,allow设定不知道要设哪个server,所以会无效,用defaultserver代表原来的主机

defaultserver private

主站台拒绝anonymous用户

passive address--转换IP数值

passive address<外部IP>/cidr

passive ports--passive的ports范围

passive ports

pasv-allow--允许使用pasv

pasv-allow[<地址>……]

port-allow--允许使用port

port-allow[<地址>……]

mailserver--指定Upload通知的mail服务器

incmail--指定anonymous upload的email通知地址

virtual incmail--指定虚拟主机anonymous upload的email通知地址

defaultserver incmail--指定预设主机anonymous upload的email通知地址

mailfrom--通知的寄信人upload

virtual mailfrom--虚拟主机upload通知的寄信人

defaultserver mailfrom--预设主机upload通知的寄信人

chmod--设定是否可以改变文件权限

delete--设定是否可以删除文件

overwrite--覆盖文件

rename--重命名文件

umask--允许设定umask

passwd-check--设定anonymous FTP的密码检查程度,用法如下:

passwd-check()

设定对anonymous ftp用户的密码是否检查,none表示不检查,trivial为包含@的任意密码,rfc822则表示密码要遵循RFC822格式,enforce表示密码检查不过不允许进入,warn表示密码检查不过只出现警告信息。

deny=email--拒绝特定的email当密码

path-filer--摄定哪些文件名不可使用

path-filer<错误信息文件><允许字符><不允许字符>

upload--设定upload权限

upload[absloute/relative][class=]…[-]<设定的目录>>[dirs/nodirs][d_mode]

用来对我们要设定的目录做权限设定:

absoulte/relative使用绝对路径或是相对路径

class=指定某个class

root-dir指的是对哪些root-dir的人,也就是chroot后的登入目录,应用这个规则

设定的目录指的就是我们要限制的目录

yes/no指得是能否在此目录下开新文件

owner,group指出是开出来的文件拥有者及群组

Mode指的是文件权限

dirs/nodirs指的是能否开新目录

d_mode设定建立新目录时目录的权限,如果不设定会根据mode来设定

thoughput--控制下载速度

thoughput<子目录列表><文件><远端地址列表>

对远端的地址,控制他抓某个子目录下的某些文件时的速度,例如:

thoughput /e/ftp * * oo - *

thoughput /e/ftp /sw* * 1024 0.5 *

thoughput /e/ftp sw* readme oo - *

thoughput /e/ftp sw* * oo - *.foo.com

以上的设定你是否能够看出来呢?“oo”表示不限制bytes/sec,“-”或是“1.0”都是代表一倍。第一行的意思是说,在/e/ftp下面的文件不限制下载速度;第二行说,在/sw*下面的任何文件限速为1024bytes/sec*

0.5=512bytes/sec;第三行又把readme文件的限速取消;最后一行则对*.foo.com开放全速。

anonymous-root--对某class设定匿名用户的根目录

anonymous-root[]

guest-root--预设一个guest用户根目录

guest-root[]

其中用于指定uid的范围

deny-uid,deny-gid--拒绝某段UID(GID)范围

allow-uid,allow-gid--允许某段UID(GID)范围

restricted-uid,restricted-gid--限制用户不能离开他的登录目录

unrestricted-uid,unrestricted-gid--用户可以离开他的登录目录

dns refuse_mismatch--设定DNS查到名称与用户设定不符的动作

dns refuse_mismatch<信息文件>[override]

当用户使用未注册IP时,拒绝他的连线,override则是不理会错误而让他连线,信息文件则是我们要给用户看的。

dns refuse_no_reverse--设定无反查记录拒绝连线

dns refuse_no_reverse<信息文件>[override]

当用户的IP反查无记录时,拒绝他的连线

dns resolveoptions--设定DNS解析选项

dns resolveoptions[options]

这里可以设定DNS解析选项

⒉/etc/ftphosts

ftphosts文件其实跟ftpaccess里面的access,deny很像,它是特别用来设定某些ID的连线,它没有class定义,所以必须是真实用户。

allow|deny<用户><地址>[<地址>……]

以下是一些例子:

allow rose 140.0.0/8

deny jack 140.123.0.0:255.255.0.0

允许rose从140.*.*.*进来,拒绝jack从140.123.*.*上来

⒊/etc/ftpservers

这个文件控制了当你有不同的IP/hostname的时候,进来的连线使用哪一个配置文件。例如:

10.196.145.10 /etc/ftpd/ftpaccess.somedomain/

10.196.145.200 /etc/ftpd/ftpaccess.someotherdomain/

some.domain internal

10.196.145.20 /etc/ftpd/config/faqs.org/

ftp.some.domain /etc/ftpd/config/faqs.org/

⒋/etc/ftpusers

在这个文件里记录的用户禁止使用FTP

⒌/etc/ftpgroups

给SITE GROUP指令使用,线上切换group。SITE EXEC容易造成安全漏洞,一般我们都不开放。

⒍/etc/ftpconversions

用来做tar、compress、gzip等动作指令配置文件,只要用预设即可,如果你不开放即时压缩打包,也可以把内容清除。

2,Linux操作系统近几年有了蓬勃的发展,在整个世界范围内得到了越来越多公司和团体的支持,尤其是最近IBM公司的鼎力支持,更是使Linux服务器如虎添翼,更上一层楼

Linux操作系统近几年有了蓬勃的发展,在整个世界范围内得到了越来越多公司和团体的支持,尤其是最近IBM公司的鼎力支持,更是使Linux服务器如虎添翼,更上一层楼。而在国内,Linux的应用也是方兴未艾,众多公司已经投入到Linux系统的研发和推广工作中。一些优秀的Linux操作系统相继出现,比如红旗Linux等。但是我国的Linux应用水平还很低,熟悉Linux的人员严重缺乏,Linux专业人才的缺乏已成为Linux在国内应用和普及的瓶颈问题。据《开放系统世界》2003年第八期介绍,中国五年内Linux人才需求量将会超过120万。而“1+1+1”工程的实施,也是间接地告诉我们这个问题的严重性。如此大好时机,我们干吗还愣着不动呢!如果你是一位Linux爱好者,你可能已经掌握了基本的Linux的知识与操作,毫无疑问,你并不会去满足这样小小的成就。Linux为何如此的流行?其最大的特点莫过于功能强大,性能稳定的服务器应用了。像WWW,MAIL,FTP,DNS和SMB等。在这篇文章中,我将以Redhat Linux 9为蓝本,从Web服务器的一些最基本的操作入手,从初学者使用的态度,让读者正确充分的认识Apache。好,现在就让我们一起踏上征服Apache的自由之路吧。

Apache的主要特征是:

. 可以运行上所有计算机平台;

. 支持最新的HTTP 1.1协议;

. 简单而强有力的基于文件的配置;

. 支持通用网关接口CGI;

. 支持虚拟主机;

. 支持HTTP认证;

. 集成Perl脚本编程语言;

. 集成的代理服务器;

. 具有可定制的服务器日志;

. 支持服务器端包含命令(SSI)

. 支持安全Socket层(SSL)

. 用户会话过程的跟踪能力;

. 支持FastCGI;

. 支持Java Servlets。

安装Apache

下面我们就开始漫漫征服Apache之旅,通过循序渐进的需求实例,一步步地学习使用Apache,从入门到精通。

系统需求

运行Apache不需要太多的计算资源。它在有6-10MB硬盘空间和8MB RAM的Linux系统上运行得很好。然而,只运行Apache可能不是你想做的事情。更可能的是,你想运行Apache来提供WWW服务、启动CGI进程以及充分利用所有WWW能够提供的令人惊奇的功能。在这种情况下,你需要提供反映负载要求的额外的磁盘空间和内存空间。也就是说,如果仅仅是启动WWW服务并不需要太多的系统资源,但是想要能为大量的客户提供服务就需要更多的系统资源。

获取软件

你可以在http://www.apache.org中获得Apache的最新版。而几乎所有的Linux发行版中均包含有Apache软件包,你也可以直接使用它。

需要注意的是,Apache软件包有两种:一种是源代码,下载后需要自己重新编译;另一种是可执行文件,下载后只需解压就可以使用。

安装软件

你可以通过以下三种方法安装Apache服务器。

1.如果你安装的Linux版本中带用Apache的话,就在选择所要安装的服务器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工作,并做好基本的配置。

2.使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级用户,因为它相对比较简单。

下载软件包apache_1.2.4.e.tar.gz

tar xvzf apache_1.2.4.e.tar.gz

这就完成了安装工作,简单吧!

如果你使用的是RedHat Linux的话,你也可以下载apache_1.2.4.rpm软件安装包,然后使用rpm -ivh apache_1.2.4.rpm命令安装。

3.如果你想把Apache服务器充分利用起来的话,就一定要自己编译Apache定制其功能。

下载包含Apache源代码的软件包apache_1.2.4.tar.gz; 然后用tar命令将它解开; 将当前目录改变为Apache源代码发行版的src目录; 将配置样本文件(Configuration.tmpl)复制为Configuration文件;

编辑Configuration文件中的配置选项:

Makefile配置选项:一些编译选项:

. "CC="一行指定用什么编译软件编译,一般为"CC=gcc";

. 如果需要将额外的标志(参数)指定给C编译软件,可以使用:

EXTRA_CFLAGS=

EXTRA_LFLAGS=

. 如果系统需要特殊的库和包含文件,可以在这里指定它们:

EXTRA_LIBS=

EXTRA_INCLUDES=

. 如果你要改变代码优化设置的话,你须将下面一句去掉注释,然

后改成你所需要的值:

#OPTIM=-O2

Rule配置选项:用来决定需要什么功能,一般情况下无需改变。

模块配置:模块是Apache的组成部分,它为Apache内核增加新功能。通过使用模块配置,可以自定义在Apache服务器中需要什么功能,这个部分也是Apache灵活性的表现。模块配置行如下所示:

AddModule modules/standard/mod_env.o

如果你需要Apache服务器具备什么功能,就将那个模块用AddModule语句加到配置文件Configuration中去。

3,一、 MYSQL的基本概念

1、MYSQL的定义

MYSQL一种多用户、多任务的数据库服务器软件

2、MYSQL的特点

支持多平台,没有内存漏洞,分布式处理

支持JAVA、PHP、PERL、支持数据类型

支持ODBC,支持SQL查询

二、 安装MYSQL的服务器

1、 RPM方式MYSQL

#RPM –ivh MYSQL-3。23-3.i386.rpm

#RPM –ivh MYSQL-client-3.23-33.i386.rpm

#RPM-ivh MYSQL-Shared.3.23-33.i386.rpm

#Tpm -ivh MYSQL –server.3.23-33.i386.rpm

2.编译安装方式

#tar -xvzf mysql 3.23.tar.gz

# cdmysql-3.23

#/configure --prdfix=/usr/local

#make

#malke install

# cd/usr/local/bin/

#/mysql-install-db 初始数据库系统。

系统库作用:记录服务器的设置参数,存放用户库信息

安全选项

#safe-mysqld

这里做了些基准测试表明nginx打败了其它的轻量级的web服务器和代理服务器,同样也赢了相对不是那么轻量级的产品。

有人说这些基准测试是不准确的,因为在这样那样的环境下,做的比较不一致。我倾向同意基准测试只是告诉了我们其中一部分情况,你能做的是消除偏见(有人见过所有人都同意一个基准测试是公平的吗?我是没见过。)

不管怎样,这篇文章不是做基准测试来让人们争论(如果你喜欢,可以在Google上找到那样的文章),相反,下面的引述来自人们在现实世界中使用Nginx,在真实的负载下,服务于真正的应用和网站。

引述

我们投资的一些公司把web平台切换到Nginx后,可以显著的解决扩展问题。Nginx明显有效的实现了今天互联网上最大网站数量的增长。

– Thomas Gieselmann, BV Capital.

对今天运行网站的所有人的建议是,想打破性能限制就研究下能否使用Nginx。CloudFlare去年在一个相对较小的基础设施上已经扩展到可以处理每

月超过150亿的浏览量,很大程度上是因为Nginx的扩展性。我的经验表明切换到Nginx可以最大限度的利用现代的操作系统和现有的硬件资源。

– Matthew Prince, CloudFlare的联合创始人和CEO

Apache和Nginx都有能力提供每秒钟庞大的请求服务,但是随着并发数量的增加,Apache的性能开始下降,然而Nginx的性能几乎不会下降。

这里最好的一点是:因为Nginx是基于事件的,它不用为每个请求产生新的进程或线程,所以它的内存使用很低。在我的基准测试中,它的内存使用坐落在2.5M,Apache使用得更多。

– WebFaction

对Nginx v0.5.22 and Apache

v2.2.8我用ab(Apache的基准测试工具)跑了一个简单的测试。在测试过程中,我用vmstat和top检测系统。结果表明在提供静态内容

时,Nginx做得比Apache好。两个服务器都在并发数100时表现最佳。Apache使用4个工作进程(线程模式),30%的CPU和17MB的内

存,每秒钟处理6,500次请求。Nginx使用一个工作进程,15%的CPU,1MB内存,每秒钟处理11,500次请求。

– Linux Journal

Apache好比是微软Word,它有100万个选项,但是你只需要其中6个。Nginx就处理那6项任务,但处理其中5项任务时速度比Apache快50倍。

– Chris Lea

我现在使用Nginx在单一服务器上处理每天超过数千万(也就是每秒钟几百次)的反向代理HTTP请求。在负载高峰期,它消耗大约15MB的内存和10%的CPU,在我的特定配置下(FreeBSD 6)。

在同样的负载下,Apache表现大跌(在大约使用1000个进程后,上帝知道使用了多少内存),Pound表现大跌(如此多的线程,所有的线程栈会消耗400MB以上的内存),还有Lighttpd每小时泄露20MB以上内存(使用更多CPU,但不显著)。

– Bob Ippolito in the TurboGears mailing list, 2006-08-24

我们现在使用Nginx 0.6.29的upstream hash模块为我们需要的Varnish代理提供静态杂凑。我们通常处理8-9千次请求/秒,大约1.2Gb/秒数据在几台Nginx服务器间传输,而且还有很大的成长空间。

– WordPress.com

直到今天,我们一直使用Pound来解决Justin.tv 的负载均衡。它一直使用20%的CPU,在高峰期会达到80%。在极高的负载下,它偶尔会崩溃。

我们只是切换到了Nginx,负载马上就降到了大约3%的CPU使用。我们的页面感觉更快了,尽管这可能是我的错觉。不仅它的配置文件格式容易理解和配置,而且还提供了完整的web服务器功能。我们再也没有遇到尖峰期了,而且我怀疑现有的性能会彻底打败Pound。

– Emmett Shear

我们使用Nginx作为主要的软件用于一个免费的托管平台,我已经在Nginx中开发了一个特定的模块用于banner潜入和统计计算,现在我们的中央服务器可以处理大约150-200Mbit/s高度分散的http流量(所有的文件都很小)。

我认为这是非常好的结果。因为在同样的服务器上面Apache不管怎么优化,甚至都不能处理60-80Mbit/s。

– Alexey Kovyrin

阵子,我们把我们的前端IMAP/POP代理从perdition切换到了nginx…,现在我们又使用nginx来做前端web代理服务器…。最终的结

果是,现在的每台前端代理服务器可以保持超过10,000并发(IMAP, POP, Web &

SMTP)连接(其中很多还是SSL),仅仅只使用了大约10%的CPU。

– FastMail.fm blog

最近,我们的静态内容服务器切换到了Nginx,无疑这是这么多年来我印象最深刻的一款web服务器。我们运行在一台配有8G内存的机器上,但是nginx进程只使用了可笑的1.4Mb。

– Philip Jacob

我们已经用nginx取代了Squid(反向代理)+Apache的方案,平均负载和CPU使用一样降低了一半。另外我们的基准测试表明新的配置每秒钟可以处理的请求数是旧配置的2-3倍。

– HowtoForge

我们用一些CMS系统( Wordpress, Drupal, Joomla, TYPO3等)做了基准测试,结果是Nginx提供网页的速度比Apache快了50%,同时nginx每秒钟处理的请求数(RPS)是Apache的177%。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/492146.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-14
下一篇2023-06-14

发表评论

登录后才能评论

评论列表(0条)

    保存