分页: 2/3 第一页 上页 1 2 3 下页 最后页 [ 显示模式: 摘要 | 列表 ]
以前一直有这样的需求,是说apache缺少我需要的模块,可是如何在不影响现有程序的基础上,直接添加一个loadModule呢,但是模块文件从哪里来?从另外一个系统复制一份过来是否可行?虽然只是一个 foo.so 文件,放到module文件夹就可以了,但我还是查了一下资料,找到合适的方法,并且尝试过了。

这个是原文

引用
apache 添加 mod_rewrite 模块

我使用的是httpd 2.0.55 注意配置httpd.conf 时 是 rewrite_module 而不是 mod_rewrite

1、Apache安装rewrite模块的时候需要DBM支持,否则无法编译。使用rpm -qa gdbm 查询,如果没有,需要先下载并安装gdbm:
下载地址:ftp://ftp.gnu.org/gnu/gdbm/

安装步骤:
./configure
make
make install
make install-compat (如果不执行此步,无法编译出ndbm.h头文件)

2、安装
#cd /root/src/httpd-2.0.55/modules/mappers
#/usr/local/apache/bin/apxs -c mod_rewrite.c
#gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
#/usr/local/apache/bin/apxs -i -A -n mod_rewrite mod_rewrite.so

/usr/local/apache/bin/ 是我正在使用的apahce的目录

3、配置httpd.conf
加入 LoadModule rewrite_module modules/mod_rewrite.so

注意是 rewrite_module 而不是 mod_rewrite


过程其实很容易理解:
1 在httpd的源文件里面找到 foo.c
2 运行程序编译出 foo.so
3 在httpd.conf添加进来

这里面要注意的两点:
1 foo.c是按功能放置在modules目录的,自己找到相应目录
2 loadModule命令默认是注释的,要去掉后还要改一下名称

下面是尝试expires功能的添加:

cd modules/metadata/
(expires属于metadata功能部分的)
/Data/apps/apache/bin/apxs -c mod_expires.c
gcc -shared -o mod_expires.so mod_expires.o -lgdbm
/Data/apps/apache/bin/apxs -i -A -n mod_expires mod_expires.so

编辑httpd.conf文件
LoadModule expires_module modules/mod_expires.so

然后测试一下:
引用

[root@localhost apache]# ./bin/apachectl -t
Syntax OK
[root@localhost apache]# ./bin/apachectl graceful


这个模块很实用,可以给你带来带宽的节省
比如如下配置:

   <IfModule mod_expires.c>
       ExpiresActive On
       ExpiresDefault "access plus 6 hours"
       ExpiresByType text/html "access plus 0 hours"
   </IfModule>


启用expires,默认缓存6小时,但不缓存 text/html
也就是访问阿权的网页
http://www.aslibra.com/blog/read.php?132 不会缓存网页
http://www.aslibra.com/blog/up/1158240093.jpg 缓存图片和脚本等

意思就是这样了
Tags: ,
阿权今天处理了apache的配置问题:
1 设置环境变量
2 处理盗链方法
3 日志分割保存

1 设置环境变量

在apache里面,你可以用正则来判断很多变量,然后设定另外一个变量以便后面的配置使用
比如你要判断用户是否访问某个文件夹,然后设定一个变量记录一下:
SetEnvIfNoCase Request_URI "^\/aslibra" ISSTART=1


SetEnvIfNoCase 是指不区分大小写
Request_URI匹配一下 "^\/aslibra"
如果是的话,那ISSTART=1,否则就不是1

另外,不记录图片的日志可以是找一下文件路径,然后设定变量供后面使用:
<FilesMatch "\.(ico|gif|jpg|png|swf)">
    SetEnv NOFILES 1
</FilesMatch>

CustomLog logs/access_log combined env=!NOFILES


2 处理盗链

处理盗链一般是在referrer上做判断,见下面这个例子:

SetEnvIfNoCase Referer "^http://www\.aslibra\.com/" local_ref=1
<FilesMatch "\.(rar|zip|iso|dmg|exe|rmvb)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
</FilesMatch>


上面是判断来源是上面域名,然后设定为允许访问

    SetEnvIfNoCase Referer "^http://notpermit\.aslibra\.com/" aaa
    <FilesMatch "\.(rar|zip|iso|dmg|exe|rmvb|gif|jpg)">
       Order Allow,Deny
       Allow from all
       Deny from env=aaa
    </FilesMatch>


上面是判断来源,然后不允许该域名

3 日志分割

日志分割可以使用 cronolog 来处理
安装就比较容易了,跟一般软件一样安装

安装过程介绍:
1 获取文件
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
2 解压
tar -zxvf cronolog-1.6.2.tar.gz
3 编译
./configure --prefix=/Data/apps/cronolog
make
make intall

定义格式:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

LogFormat "%h %{%T}t \"%r\" %{cookiename}C" record


上面是定义日志格式,你可以定义很多日志格式,以便后面的记录日志使用
比如普通的是combined,有一般要采集的内容,如果要采集cookie(%{cookiename}C)和自定义时间格式(%{%T}t),可以使用上面类似record的写法

CustomLog "|/Data/apps/cronolog/sbin/cronolog /Data/weblog/%Y/%m/%d/www.aslibra.com.%m%d%H" record
CustomLog "|/Data/apps/cronolog/sbin/cronolog /Data/weblog/%Y/%m/%d/aslibra.com.%m%d%H" combined


以上的例子就是调用cronolog存储日志,后面的参数是自己定义的日志格式
当然,你还可以自定义记录很多条件的日志,比如仅仅要记录 /aslibra 开始的请求:

SetEnvIfNoCase Request_URI "^\/aslibra" ISSTART=1
CustomLog "|/Data/apps/cronolog/sbin/cronolog /Data/weblog/%Y/%m/%d/aslibra.com.%m%d%H" record env=ISSTART


可以几个CustomLog一起记录的,以此类推就好了

也有一些别的例子:

# 不记录本机发出的请求
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
# 不记录对robots.txt文件的请求
SetEnvIf Request_URI "^/robots\.txt$" dontlog
# 记录其他请求
CustomLog logs/access_log common env=!dontlog
Tags:
在查apache资料,这个文章不错,摘录一下,有空看:

测试与提高性能

Apache服务器已经被设计得尽可能的快,即使你用一台配置不高的机器,用不着进行太复杂的设置,它的响应内容就足以塞满以前的各种窄带连接。但随网站内容日益复杂和带宽的增加,对Apache进行优化以取得更好的性能变得日益重要起来。

如果优化的结果仅仅是极小的性能提升那真是浪费时间。试想一下,你花了好几个小时甚至几天调整Apache的各种参数但结果仅是几个百分点的性能提升?因此,在优化前你做的第一步应该是测试你目前的服务器的性能水平以便决定如何优化你的服务器并衡量优化的效果。

关于对Apache的测试我们已经不是第一次提到了(见《冲出水面》一文),如同我们以前提到的,确定到底是哪一部分导致的瓶颈往往是一件困难的事,是因为Apache本身的设置问题还是由于你使用的动态网站程序环境?关于查找是否是因为网站程序引起的问题已经超出了本文的范围,这里我们主要讲一下提高Apache服务器速度的一些通常做法以及它如何与构成WEB网站的其它组件进行交互。

主机硬件

Apache所在的机器与操作系统环境是对性能影响最大因素,很明显,一以368的PC与一台P4或双处理器的机器不会有同样的性能。不过,如果不涉及硬件的改变,我们可以做的最大的事是首先看一下Apache是否运行在一台专用的服务器上,如果与其它应用共用一台服务器肯定会影响服务器的性能。

在大多数情况下,告别是对静态网站而言,内存数量是一个影响性能的关键因素,因为它决定了Apache可以缓存多少内容。它缓存的内容越多,在硬盘上读取内容的机会就越少,而存取硬盘上的特定文件是一件很费时的操作。如果你的网站主要是一些静态内容,你最好使用mod_cache选项,如果你的内存足够大,可以使用mod_mem_cache选项。

第一个选项将信息缓存在磁盘上,当它与mod_include选项一起使用时会有很好的效果,这个选项在建立一个页面时在缓存中保存它的最终版本。使用mod_mem_cache将缓存内容保存在一个可以被所有Apache进程共享的内存堆中。

使用更快的磁盘或进一步使用RAID可以提高Apache对磁盘文件的访问速度。注意,如果你做了下面的所有这些优化,一个硬件的(而非软件)升级方案是更好的选择。最后一个谈到的关于硬件的问题是CPU能力,这对动态内容网站的影响很大,动态内容越多要求越高。

通过挤出Apache服务器的每一分潜力你可以让你的网站留给别人的印象大大改观,特别是对一些动态网站更是如何。这篇文章主要涉及到对Apache服务器的安装和设置如何进行优化,这也是你最有控制权的部分。

Tags:
apache自带一个测试程序,也就是bin目录下的ab.exe。
摘抄一些文字,以后参考一下并且写一下优化方法




ab网站压力测试命令的参数、输出结果的中文注解
   
permalink
   

以前安装好APACHE总是不知道该如何测试APACHE的性能,现在总算找到一个测试工具了。就是APACHE自带的测试工具AB(apache benchmark).在APACHE的bin目录下。
格式: ./ab [options] [http://]hostname[:port]/path
参数:
-n requests Number of requests to perform
//在测试会话中所执行的请求个数。默认时,仅执行一个请求
-c concurrency Number of multiple requests to make
//一次产生的请求个数。默认是一次一个。
-t timelimit Seconds to max. wait for responses
//测试所进行的最大秒数。其内部隐含值是-n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-p postfile File containing data to POST
//包含了需要POST的数据的文件.
-T content-type Content-type header for POSTing
//POST数据所使用的Content-type头信息。
-v verbosity How much troubleshooting info to print
//设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。
-w Print out results in HTML tables
//以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。
-i Use HEAD instead of GET
// 执行HEAD请求,而不是GET。
-x attributes String to insert as table attributes
//
-y attributes String to insert as tr attributes
//
-z attributes String to insert as td or th attributes
//
-C attribute Add cookie, eg. 'Apache=1234. (repeatable)
//-C cookie-name=value 对请求附加一个Cookie:行。 其典型形式是name=value的一个参数对。此参数可以重复。
-H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
Inserted after all normal header lines. (repeatable)
-A attribute Add Basic WWW Authentication, the attributes
are a colon separated username and password.
-P attribute Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
//-P proxy-auth-username:password 对一个中转代理提供BASIC认证信任。用户名和密码由一个:隔开,并以base64编码形式发送。无论服务器是否需要(即, 是否发送了401认证需求代码),此字符串都会被发送。
-X proxy:port Proxyserver and port number to use
-V Print version number and exit
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-h Display usage information (this message)
//-attributes 设置 属性的字符串. 缺陷程序中有各种静态声明的固定长度的缓冲区。另外,对命令行参数、服务器的响应头和其他外部输入的解析也很简单,这可能会有不良后果。它没有完整地实现 HTTP/1.x; 仅接受某些'预想'的响应格式。 strstr(3)的频繁使用可能会带来性能问题,即, 你可能是在测试ab而不是服务器的性能。

参数很多,一般我们用 -c 和 -n 参数就可以了. 例如:

./ab -c 1000 -n 1000 http://127.0.0.1/index.php

这个表示同时处理1000个请求并运行1000次index.php文件.
#/usr/local/xiaobai/apache2054/bin/ab -c 1000 -n 1000 http://127.0.0.1/index.html.zh-cn.gb2312
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.0.54
//平台apache 版本2.0.54
Server Hostname: 127.0.0.1
//服务器主机名
Server Port: 80
//服务器端口

Document Path: /index.html.zh-cn.gb2312
//测试的页面文档
Document Length: 1018 bytes
//文档大小

Concurrency Level: 1000
//并发数
Time taken for tests: 8.188731 seconds
//整个测试持续的时间
Complete requests: 1000
//完成的请求数量
Failed requests: 0
//失败的请求数量
Write errors: 0

Total transferred: 1361581 bytes
//整个场景中的网络传输量
HTML transferred: 1055666 bytes
//整个场景中的HTML内容传输量
Requests per second: 122.12 [#/sec] (mean)
//大家最关心的指标之一,相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值
Time per request: 8188.731 [ms] (mean)
//大家最关心的指标之二,相当于 LR 中的 平均事务响应时间 ,后面括号中的 mean 表示这是一个平均值
Time per request: 8.189 [ms] (mean, across all concurrent requests)
//每个请求实际运行时间的平均值
Transfer rate: 162.30 [Kbytes/sec] received
//平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题

Connection Times (ms)
min mean[+/-sd] median max
Connect: 4 646 1078.7 89 3291
Processing: 165 992 493.1 938 4712
Waiting: 118 934 480.6 882 4554
Total: 813 1638 1338.9 1093 7785
//网络上消耗的时间的分解,各项数据的具体算法还不是很清楚

Percentage of the requests served within a certain time (ms)
50% 1093
66% 1247
75% 1373
80% 1493
90% 4061
95% 4398
98% 5608
99% 7368
100% 7785 (longest request)
//整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间,其中50%的用户响应时间小于1093 毫秒,60% 的用户响应时间小于1247 毫秒,最大的响应时间小于7785 毫秒

由于对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上第一个Time per request时间约等于第二个Time per request时间乘以并发请求数
Tags: ,
最近担心服务器效率不好,所以抄一下apache的优化,以后备用




本文出自:http://www.freelamp.com 作者: 徐永久

本文简要介绍了几个优化 Apache 的技巧,在实战中十分有用。

升级 Apache 到最新版本,新版本往往包含性能提升和安全更新。

在 httpd.conf 中设置 "HostNameLookups off" 能避免针对每个访问者的 DNS 域名的反向查询。

对于繁忙的网站,在 httpd.conf 中设置 "MaxClients 230" 或者更高。这项设置让更多的 httpd 进程同时响应请求,并避免了处理器排队的情况发生。

采用另外一台服务器处理图片文件。

缺保您的 Web 页面和 CGI 页面采用了浏览器缓冲技术。具体的文章可以参考本站:采用 mod_gzip 加速 Zope 和 Apache

保持您的 Apache 苗条,编译那些仅仅需要的模块,在编译之前,修改 src/Configuration 文件,在那些不需要的模块之前用 # 号注释掉。

如果不需要流量日志,那么把 httpd.conf 中的 TransferLog 指向到 /dev/null/

除非你确定使用 .htaccess 文件来控制一些目录的权限,否则设置 "AllowOverride None" ,这样就免去 Apache 在每个目录搜索 .htaccess 文件的劳役之苦。

不要让不需要的后台进程运行。

千万不要把页面或者日志文件写到网络磁盘上,例如 NFS。

不要让 Apache (httpd) 运行于 inetd 模式。

不要让 X Windows 运行在你的 Web 服务器上,用 Ctrl-Alt-Backspace 关闭 X 。

避免使用 SSI tag。

在 CGI 脚本中:
文件 I/O:打开的文件数目越少越好。
Shell 命令:采用全路径来调用 shell 命令。
如果你的网站主要以 CGI 来驱动,那么请使用 mod_perl。
在你的 Web 页面目录中,不要让文件数超过 1000 个,文件越多花费在定位上的时间也越多。

在 Web 服务器上的图片越少越好,保证每个图片都经由图片压缩器运行。

对你的网站做压力测试,建议采用 Apache 自带的 ab 命令来测试。

为了最好的性能,最好把网线拔掉,这样你的 Web 服务器就十分安全,而且负载马上降为 0,:-)
Tags:
ServerRoot /Apache
#可以用绝对路径 e:webapache
#ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerRoot定义的路径之下。
PidFile logs/httpd.pid
#PidFile指定的文件将记录httpd守护进程的进程号,由于httpd能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程,对这个进程发送信号将影响所有的httpd进程。PidFILE定义的文件中就记录httpd父进程的进程号
Timeout 300
#Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接.
KeepAlive On
#在HTTP 1.0中,一次连接只能作传输一次HTTP请求,而KeepAlive参数用于支持HTTP 1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个HTTP请求。虽然只有较新的浏览器才支持这个功能,但还是打开使用这个选项
MaxKeepAliveRequests 100
#MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。
KeepAliveTimeout 15
#KeepAliveTimeout测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连接。
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>
Listen 80
#端口,启动模块.下面许多模块只有在LIUNX下才有用
LoadModule access_module modules/mod_access.so
#.....
LoadModule rewrite_module modules/mod_rewrite.so
#ExtendedStatus On
ServerAdmin abc@123.com
#服务器管理员邮箱,在出错,探针中显示
ServerName localhost.domain.com
UseCanonicalName Off
#是否允许对每个访问者的 DNS 域名的反向查询
DocumentRoot /Apache
#放网页的目录.这个很重要.
#你设置了,e:web是目录 而虚拟主机设置了e:webtwo
#虽然程序还是能运行,但是不在documentroot内的话,程序会有错误
<Directory />
Options FollowSymLinks MultiViews ExecCGI
AllowOverride None
</Directory>
<Directory /Apache/>
Options FollowSymLinks MultiViews ExecCGI
AllowOverride None
order allow,deny
php_admin_value open_basedir /apache/
Allow from all
</Directory>
#以下是关于用户目录配置部分,即用户可以用http://www.xxxx.com/~username的方式来访问自已的网站!
#UserDir /apache/webroot/aaausersfreehost/*/public_html
#<Directory e:/虚拟主机/*/public_html>
# AllowOverride None
# Options MultiViews SymLinksIfOwnerMatch IncludesNoExec ExecCGI
#下面这条指令定义php只能对public_html此目录及其子目录下的文件进行操作.
# php_flag engine off #表示此目录下的PHP文件不被解释执行,限没有PHP权限。
# php_admin_value open_basedir ./
# order allow,deny
# Allow from all
#</Directory>
#下面这条指令可以把虚拟目录freehost映射到实际路径/apache/webroot/users/下!
#AliasMatch ^/class/([0-9]).html$ /article.php?articleid=$1
#AliasMatch ^/class/([0-9] ).([0-9a-zA-Z] ).html$ /article.php?articleid=$1&amp;pagenum=$2
DirectoryIndex index.html index.htm index.php index.cgi bbs.pl index.pl admin.php login.htm login.html login.php
#默然主机头
AccessFileName .htaccess
<Files ~ ^.ht>
order allow,deny
Deny from all
</Files>
TypesConfig conf/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
#以下是限制主机同时并发连接数
#<IfModule prefork.c>
#ServerLimit 2000
#StartServers 15
#MinSpareServers 15
#MaxSpareServers 20
#MaxClients 850 #最大客户端
#MaxRequestsPerChild 10000 #最大请求数
#</IfModule>
#以下是对单个文件进行访问控制
#<Files ~ 要屏蔽的文件的名称>
#Order allow,deny
#Allow from 允许IP
#Deny from all
#</Files>
HostnameLookups Off
#EnableMMAP off
#EnableSendfile off
ErrorLog logs/error.log
LogLevel warn
LogFormat 镲?? ?痋飁ferer}i 飐er-Agent}i combined
LogFormat 镲?? ??common
LogFormat 飁ferer}i -> ?referer
LogFormat 飐er-agent}i agent
CustomLog logs/access.log common
#CustomLog logs/referer.log referer
#CustomLog logs/agent.log agent
#CustomLog logs/access.log combined
ServerTokens Full
ServerSignature Off
#当客户请求的网页并不存在时,服务器将产生错误文档,缺省情况下由于打开了 ServerSignature选项,错误文档的最后一行将包含服务器的名字、Apache的版本等信息。
#Alias /class/ /apache/webroot/phpa #虚拟目录啦
# <Directory /apache/phpsafe> #对虚拟目录进行权限配置
# Options FollowSymLinks # MultiViews ExecCGI为有CGI执行权限
# php_admin_value safe_mode 1 #表示此目录下的PHP脚本只能有php_safe下权限
# php_admin_value open_basedir /apache/phpsafe/
# 此句是限制PHP的文件操作只能限于/apache/phpsafe及其子目录下,不能对此目录外的文进行操作
# php_flag engine off
#表示此目录下的PHP脚本不会被解释执行,此选项要求PHP必须以模块方式安装的!
# AllowOverride None
# order allow,deny
# Allow from all #表示允许任何人从任何地方访问
# </Directory>
#ScriptAlias /cgi-bin/ E:/Apache2/cgi-bin/
#<Directory E:/Apache2/cgi-bin>
# AllowOverride None
# Options None
# order allow,deny
# Allow from all
#</Directory>
IndexOptions FancyIndexing VersionSort
AddDescription GZIP compressed document .gz
AddDescription tar archive .tar
AddDescription GZIP compressed tar archive .tgz
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage ......
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
LanguagePriority zh-CN en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-TW
ForceLanguagePriority Prefer Fallback
#AddDefaultCharset ISO-8859-1
AddDefaultCharset GB2312
AddCharset Big5 .Big5 .big5
# For russian, more than one charset is used (depends on client, mostly):
AddCharset UTF-8 .utf8
AddCharset GB2312 .gb2312 .gb
AddCharset .....
#以CGI方式安装PHP
#ScriptAlias /__php_dir__/ /apache/cgiphp5/
#AddType application/x-httpd-php .php4 .php .htm .php3 .inc .fire
#Action application/x-httpd-php /__php_dir__/php.exe
#以apache的模块方式运行php
LoadModule php4_module /apache/php/sapi/php4apache.dll
PHPINIDir /apache/php/php.ini
AddType application/x-httpd-php .php .htm .php3
AddType application/x-httpd-php-source .phps
#支持fcgi
#LoadModule fastcgi_module modules/mod_fastcgi.dll
#AddHandler fastcgi-script .fcgi .fpl
AddType application/x-tar .tgz
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddHandler cgi-script .cgi .pl
#AddHandler send-as-is asis
#AddHandler imap-file map
AddHandler type-map var
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
#ErrorDocument 500 The server made a boo boo.
#ErrorDocument 404 /apache/yyfzx/soft
#ErrorDocument 404 /apache/yyfzx/soft
#ErrorDocument 402 http://www.example.com/subscription_info.html
BrowserMatch Mozilla/2 nokeepalive
BrowserMatch MSIE 4.0b2; nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch RealPlayer 4.0 force-response-1.0
BrowserMatch Java/1.0 force-response-1.0
BrowserMatch JDK/1.0 force-response-1.0
BrowserMatch Microsoft Data Access Internet Publishing Provider redirect-carefully
BrowserMatch ^WebDrive redirect-carefully
BrowserMatch ^WebDAVFS/1.[012] redirect-carefully
BrowserMatch ^gnome-vfs redirect-carefully
#<Location /server-status>
# SetHandler server-status
# order deny,allow
# Deny from all
# Allow from .51web.net
#</Location>
#<Location /server-info>
# SetHandler server-info
# order deny,allow
# Deny from all
# Allow from .51web.net
#</Location>
<IfModule mod_ssl.c>
Include conf/ssl.conf
</IfModule>
#以下是关于虚拟机的配置
NameVirtualHost 218.87.169.209:80
<VirtualHost 218.87.169.209:80>
RewriteEngine On
RewriteRule ^/index.htm$ /index.php
RewriteRule ^/soft/([0-9] ).htm$ /download.php?soft=$1
RewriteRule ^/sort/([0-9-_] ).htm$ /list.php?list=$1
RewriteRule ^/sort/index.htm$ /type.php
RewriteRule ^/a-z/([0-9] ).htm$ /az.php?id=$1
DocumentRoot /apache/mayidown
ServerName mayidown.3322.org
</VirtualHost>
//以 #开头的就是解释用.启动的时候不加载的.我提供了一个虚拟主机给大家参考重写URL功能

1.如何使得apache监听在特定的端口

修改httpd.conf里面关于Listen的选项,例如:
Listen 8000
是使apache监听在8000端口
而如果要同时指定监听端口和监听地址,可以使用:
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
这样就使得apache同时监听在192.170.2.1的80端口和192.170.2.5的8000端口。
当然也可以在httpd.conf里面设置:
Port 80
这样来实现类似的效果。

2.apache中如何限制http请求的消息主体的大小

在httpd.conf里面设置:
LimitRequestBody n
n是整数,单位是byte。
cgi脚本一般把表单里面内容作为消息的主体提交给服务器处理,所以现在消息主体的大小在使用cgi的时候很有用。比如使用cgi来上传文件,如果有设置:
LimitRequestBody 102400
那么上传文件超过100k的时候就会报错。

3.如何使得apache对客户端进行域名验证

可以在httpd.conf里面设置:
HostnameLookups on|off|double
如果是使用on,那么只有进行一次反查,如果用double,那么进行反查之后还要进行一次正向解析,只有两次的结果互相符合才行,而off就是不进行域名验证。
如果为了安全,建议使用double;为了加快访问速度,建议使用off。

4.如何在apache中设置session的持续时间

在apache1.2以上的版本中,可以在httpd.conf里面设置:
KeepAlive on
KeepAliveTimeout 15
这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp连接来发送,节约了网络资源和系统资源。

5.如何使得apache只监听在特定的ip

修改httpd.conf,在里面使用
BindAddress 192.168.0.1
这样就能使得apache只监听外界对192.168.0.1的http请求。如果使用:
BindAddress *
就表明apache监听所有网络接口上的http请求。
当然用防火墙也可以实现。

分页: 2/3 第一页 上页 1 2 3 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐