正在加载...
分页: 27/55 第一页 上页 22 23 24 25 26 27 28 29 30 31 下页 最后页 [ 显示模式: 摘要 | 列表 ]

Apache 支持中文路径(URL)

[ 2009/09/12 04:12 | by selboo ]
让Apache 支持中文路径(URL)

比如 http://selboo.com.cn/色萝卜.txt 使用IE可以读取到文件内容

环境:Apache/2.2.12 (Unix)    需要给Apache 增加模块

mod_encoding-20021209.tar.gz
mod_encoding.c-apache2.2-20060520.patch
mod_encoding.c.apache2.20040616

下载文件 (已下载 307 次)


[root@localhost mod]# tar -zxvf mod_encoding-20021209.tar.gz
[root@localhost mod]# cp mod_encoding.c.apache2.20040616 mod_encoding-20021209/mod_encoding.c
[root@localhost mod]# cd mod_encoding-20021209
[root@localhost mod_encoding-20021209]# patch -p0 < mod_encoding.c-apache2.2-20060520.patch
[root@localhost mod_encoding-20021209]# cd lib/
[root@localhost lib]# ./configure
[root@localhost lib]# make
[root@localhost lib]# make install

[root@localhost lib]# cd ..
[root@localhost mod_encoding-20021209]# cp ../mod_encoding.c-apache2.2-20060520.patch ./
[root@localhost mod_encoding-20021209]# patch -p0 < mod_encoding.c-apache2.2-20060520.patch
[root@localhost mod_encoding-20021209]# ./configure --with-apxs=/usr/local/apache/bin/apxs --with-iconv-hook=/usr/include
[root@localhost mod_encoding-20021209]# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -Llib -liconv_hook
[root@localhost mod_encoding-20021209]# cp mod_encoding.so /usr/local/apache/modules/

修改 httpd.conf
LoadModule headers_module modules/mod_headers.so
<IfModule mod_headers.c>
Header add MS-Author-Via "DAV"
</IfModule>
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding GBK
DefaultClientEncoding UTF-8 GBK GB2312
AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312
AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312
AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312
</IfModule>


Tags:

find使用范例

[ 2009/09/06 16:23 | by selboo ]
找出空目录
find /path -depth -type d -empty

找字节为0的文件
find /path -depth -type f -empty

找出具体文件名的文件
find /path -name name_of_file

找出特定扩展名的文件
find /path -name "*.given_extension"

根据权限及指定扩展名寻找文件
find /path -name '*.txt' -perm 644

找出指定权限的文件
find /path -perm -permision_bits(权限位)

找出指定文件名(任意扩展名的文件)
find /path -name 'given_name.*'

find根据时间寻找
用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。
各参数说明
-amin n
查找系统中最后N分钟访问的文件
-atime n
查找系统中最后n*24小时访问的文件
-cmin n
查找系统中最后N分钟被改变文件状态的文件
-ctime n
查找系统中最后n*24小时被改变文件状态的文件
-mmin n
查找系统中最后N分钟被改变文件数据的文件
-mtime n
查找系统中最后n*24小时被改变文件数据的文件
更改时间在5日以内的文件
find /path -mtime -5

找出并删除文件
find /path -name "core.*" -type f -print | xargs /bin/rm -f
====================================================
find pathname  -options [-print -exec -ok]

pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
  -print find命令将匹配的文件输出到标准输出。
  -exec find命令对匹配的文件执行该参数所给出的shell命令。
  相应命令的形式为'command'{} \;,注意{}和\;之间的空格。
  -ok和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行

文件状态判断:

-mtime: 指定时间文件内容被修改过
-ctime: 指定时间文件权限被修改过
-atime: 指定时间文件被读取过

找出3天“以前”被修改过的文档
# find /var/log/ -mtime +3 -type f -print

找出3天“内”被修改过的文档
# find /var/log/ -mtime -3 -type f -print

找出第3天被修改过的文档.
# find /var/log/ -mtime 3 -type f -print
或这样写:
#find /var/log/ -mtime +2 -mtime -4 -type f -print

注:
访问过用amin,修改过用mmin,文件状态改变过用cmin
精确到分钟的用amin,mmin,cmin,精确到天的用atime,mtime,ctime

找出指定扩展名后修改扩展名
find /path -type f | xargs rename .baksh ".sh"
The authenticity of host '64.71.167.20 (64.71.167.20)' can't be established.
RSA key fingerprint is bf:fd:e4:52:fe:25:9c:72:f5:1f:49:77:cf:3b:85:79.
Are you sure you want to continue connecting (yes/no)?

ssh 连接时经常能碰到如上信息,如果一两台还可以手动输入,如果多了就麻烦下

可以使用 -oStrictHostKeyChecking=no 参数进行过滤

ssh -oStrictHostKeyChecking=no 64.61.167.20

也可以使用 expect 命令模拟键盘输入"yes"
Tags:

使用mob_bw管理apache2下载带宽

[ 2009/08/17 19:07 | by selboo ]
有个下载站,提供大文件的上传下载服务,没有盗链,都是正常应用,带宽经常占满。后来查到原来有几个用户使用的带宽是百兆光纤,这几个用户一下载,整个服务器的带宽就基本上被用光了,其他用户再来下载,基本上就下载不下来了。
机房给的带宽是百兆共享,最多能用到10M,为了能充分合理的使用带宽,这里使用了apache的bw_module。

安装
wget http://apache.ivn.cl/files/source/mod_bw-0.8.tgz
tar xzvf mod_bw-0.8.tgz
cd mod_bw
/usr/local/apache/bin/apxs -i -a -c mod_bw.c
配置
编辑httpd.conf
添加如下一行

LoadModule bw_module          modules/mod_bw.so

设置带宽控制策略
我这里的需求有两点,一是只要带宽足够,则尽量给用户最多的带宽;而是如果同时下载人数过多,则给用户保障一个最低带宽,并且尽量平均分配。

BandWidthModule on
ForceBandWidthModule On
BandWidth all 10240000
MinBandWidth all 204800

在这种情况下,总带宽限制在10M,如果服务器上只有一个用户在下载,那么就给他10M的带宽(如果客户端也能有这么高带宽的话),当有50个用户在下载的话,则保障每个用户都能有200K带宽,当有100个用户在下载的话,则平均每个用户分配100K带宽。
bw_module的策略还有很多种,具体可以看源代码中的mod_bw.txt
Tags:
从理论上来说,内存的读写速度是硬盘的几十倍,性能应该会有所提升
在一些访问量比较高的系统上,通过把一些频繁访问的文件,比如session 放入内存中,能够减少很多的iowait,大大提高服务器的性能

在/etc/fstab中加入一行:

none /tmp tmpfs defaults 0 0

重启后生效

或者在/etc/rc.local中加入

mount tmpfs /tmp -t tmpfs -o size=128m
其中size=128m 表示/tmp最大能用128m
或  

mount tmpfs /tmp -t tmpfs

不限制大小,这种情况可以用到2G内存,用 df -h 可以看到
tmpfs                 2.0G   48M  2.0G   3% /tmp

注:不管哪种方式,只要linux重启,/tmp下的文件全部消失
另外,在一个正在运行的系统上运行 mount tmpfs /tmp -t tmpfs  会导致 /tmp下原来的所有文件都会被“覆盖”掉,之所以加个“”,因为这种覆盖只是暂时的,如果 umount /tmp的话,原来的文件还能再访问。
因为这些文件会被“覆盖”,比如原来的session mysql.sock等文件就不能访问了,用户的登陆信息就会丢失,mysql数据库也无法连接了(如果mysql.sock位于/tmp下的话)。
正确的做法是,先把/tmp下的所有文件临时mv到一个别的目录,mount tmpfs之后,再mv回来
Tags:
分页: 27/55 第一页 上页 22 23 24 25 26 27 28 29 30 31 下页 最后页 [ 显示模式: 摘要 | 列表 ]