[修改回复]
删除回复
插入表情:
宋体
楷体
幼圆
黑体
隶书
华文行楷
方正舒体
Arial
Arial Black
Arial Narrow
Century Gothic
Comic Sans MS
#0000FF
#8A2BE2
#DEB887
#5F9EA0
#7FFF00
#000000
#D2691E
#FF7F50
#FF0000
#DC143C
#99ccff
字体颜色
#FFF8DC
#00FFFF
#EE82EE
#F5DEB3
#FFFFFF
#F5F5F5
#FFFF00
#9ACD32
使用帮助
8.Apache中实现netants和flashget的单IP并发进程数限制! netants对多点下载的人说不错--不过对我们网管来说就---太占http进程啦--其实到Apache1.3.19还没本身实现单IP的http并发进程数限制-但其实是可以实现的-这个技巧也是fei从朋友那得到的--绝对是网上您能唯一看到的地方哈哈-转载属fei的名呀-要不您可真不够意思-好--说说怎么实现--要用mod_headers模块-在src/modules/standard中有-不过缺省不装-你一定要编译进去然后用 Header add Netants "Maxconnection=3"语句给netants客户端发个http头标告诉并发进程数--3可以改为1-就是一个进程-事实上这是netants的作者特意为我们网管留的接口--看看netants的help就有啦!哈哈-不过您的网速连接太快是有可能冲破的-就是头标还没收到就--那就没法啦--注意:这个只针对netants--别的如flashget嘛-对于网络管理员,FlashGet同样提供了可以限制FlashGet建立太多的连接,可以在FTP和HTTP服务器的欢迎信息中添加如下列就可以限制单一用户的同时连接数目FlashGet: MaxConnection=value 9.Apache重起的最好方法apachectl graceful! 起动Apache有很多种方法-但实质都是调用httpd--fei一般只用Apachectl好用简单apachectl是控制Apache的脚本-start,stop,restart就不用说了---configtest是看配置文件的语法有没有错误-有就会指出哪行-什么错--主要是调试用.status是如果你加载了mod_status模块后调用lynx显示apache的工作状态.主要是graceful---完美的重起--我推荐每次重起都用它不用restart--那么它与restart的不同---可以写一篇文章啦--概括的说restart向apache主进程发送一个SIGHUP信号--而graceful发的是SIGUSER1信号--发送HUP信号给主进程将导致结束它的子进程, 就想TERM(stop)信号一样,但是主进程将不会终止. 它将重新读取配置文件, 并且重新打开所有的日志文件. 然后重新产生所有子进程并继续为点击操作提供服务.而USR1 信号引起主进程处理并警告收到当前请求之后的子进程结束(或在它们不做任何服务时立刻结束). 主进程将重新读取它的配置文件并打开它的日志文件. 当每一个子进程结束后,主进程将使用配置信息产生一个新的子进程来立刻响应请求并为之服务. --好象挺复杂的是吧--主要是知道graceful要比restart 好就行了-呵呵 10.用Apache与Mysql整合实现基本的身份认证 Apache来实现基本的用户身份认证有很多种方式,比如最常见的txt文本和DBM格式,但在负载很重的server上-这些都不是理想的方法,文本的形式是基于平面的,性能很差而且也不安全;DBM好些但在千或万级用户时还是力不从心,于是用database做后台存储则是很好的方法-比平面搜索更有效而且安全,用户口令以DES加密形式存储在数据库的表中。 这种实现要归功于Apache本身出色的模块化结构--以及开放的DSO方式,可以使开发人员完成大量的第三方模块,并扩充Apache的功能。我在本文中只写了用Mysql做后台存储--此外还可用Postgresql,Oracle等来完成,原理一样-都是用各自的模块。 让我们开始吧--先去modules.apache.org(这可是Apache第三方模块的大本营)找到mod_auth_mysql--会有两个我们要用DSO那个-事实上直接去ftp://ftp.kcilink.com/pub/下一个mod_auth_mysql.c.gz就行-好-把它解开是一个mod_auth_mysql.c-好-我们用apxs来生成DSO模块(前题是你用DSO模式编译的Apache)--apxs -c -i -a -L/usr/local/lib/mysql -lmysqlclient >-lm mod_auth_mysql.c即可--这里注意一定要这么写---L/usr/local/lib/mysql是mysql的客户库位置,我假定mysql是用的缺省安装)---如果不加在起动Apache时会报错-无法装载此模块。 好-看看httpd.conf中应该有LoadModule mysql_auth_module libexec/mod_auth_mysql.so和AddModule mod_auth_mysql.c这两句了,重起Apache也不应该有问题。 然后我们进入mysql,mysql>create database auth; mysql>use auth; mysql> create table mysql_auth ( -> user_name char(20) not null, -> user_passwd char(25), -> groups char(25), -> primary key (username) ); 注意字段名一定是user_name和user_passwd这个。再插入几条记录: mysql> insert into mysql_auth values('xingfei2',encrypt("abcde"),'xingfei'); Query OK, 1 row affected (0.00 sec) mysql> insert into mysql_auth values('xingfei',encrypt("abcde"),'xingfei'); Query OK, 1 row affected (0.00 sec) 这里abcde是口令-用encrypt函数来进行加密,用的是DES算法-这是和unix的password等同的算法-而不是mysql本身加密的password()函数。 最后在要保护的目录里建一个.htaccess(别忘了把AllowOverride all打开)内容如下: authname "xingfei" authtype basic AuthMySQLHost localhost ---mysql主机名 authmysqluser root ---mysql用户 authmysqlpassword abc ---mysql用户的口令 AuthMySQLDB auth ---用户所用的库-也就是我们建的库 AuthMySQLUserTable mysql_auth ---所用的表 AuthMySQLGroupField groups ---用户组的字段名 require group xingfei require user xingfei 可以把用户都放在一个组里-只要是这个组里的用户即可通过认证。-也可require单个或多个用户。 11.由unknownuser提供用RH7.1上Apache自带的mod_bandwith用法! 怎么用RH7.1上Apache自带的mod_bandwith.o进行并发与带宽限制?? 作者 unknownuser 时间 06/29/01 09:54 PM mod_bandwidth.c 在使用该模块之前(假定已经编译完成),必须要提供几个个目录给该模块写权限以产生 流量控制的临时文件。默认为: /tmp/apachebw /tmp/apachebw/link /tmp/apachebw/master 这些目录的位置可以在源码中(#define )更改。 语法及作用: * BandWidthModule 该模块的开关,可以对每个Server进行配置 * BandWidthPulse 设定计时单位,MS(微秒),建议为:1000000 (1秒) * BandWidth 可以针对特定来源的对象控制流,rate以字节为单位,但当rate为0时,为不限制流速。 例子: BandWidth ecp.fr 0 BandWidth 138.195 0 BandWidth all 1024 * LargeFileLimit 当传送一个大于等于filesize KB大小的文件时,设定一个最大流速(字节/秒),当rate 为0的时候,不限速。 例子: LargeFileLimit 200 3072 LargeFileLimit 1024 2048 以上例子设定小于200KB的文件将不会被限制流速,大小在200K到1024K之间的文件将会被 限速3072 B/s,大于1024KB的文件将会被限速2048 B/s. * MinBandWidth 设定每个连接传送数据的基本带宽占用,以Byte为单位。默认值:256 B/s。 当rate设定为0时,使用默认带宽限制。 更详细的文档参见源码。 源码来源: http://www.cohprog.com/ http://www.animanga.com/ 12.修改Apache对外显示版本号等信息的方法 [ 改path/to/apachesrc/src/include/httpd.h 中的#define SERVER_BASEREVISION "1.3.20"为你想要显示的版本--如10000然后在 configure时就会看到Configuring for Apache, Version 10000
不能为空
不能含有 ` 字符,字数8000以内
(CTRL+ENTER提交)
关闭窗口