我正在写一个当前运行在2.2.22上的Apache模块。 该模块运行用新的编程语言编写的脚本,为了优化,cachingparsing的结果以供连续使用。 由于在修改文件时应该删除caching的分析,因此我会存储修改时间并在每次运行时针对文件系统进行检查。 这是一些带有debugging信息的代码: if (file->is_modified (mtime)) { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "P* removing cached file"); files.erase(it); } 我在testing时发现了什么(获取页面,修改文件,再次获取),是否永远达不到此块。 该文件被更改后再次parsing,但不是由于此检查。 它看起来像Apache本身正在检查修改时间,并释放模块中的所有内存。 parsing后的文件在未经修改的情况下被正确地重新使用。 这是Apache服务器的预期行为,如果是这样,这是叫什么,它在哪里logging? 检查caching程序的函数的完整代码 shared_ptr<pstar_file> pstar_pool::get_file_handle ( request_rec *r, wpl_io &io, const char *filename, int mtime ) { pstar_map_t::iterator it; apr_proc_mutex_lock (mutex); // Check if a cached program exists it = files.find(filename); if (it != […]
mod_status的Apache文档说打开扩展状态可以减慢服务器。 这会发生在什么地方? 它使用更多的CPU? 记忆? 产生额外的进程? 谢谢!
我想构build最新的稳定版本的apache2。 我下载了源代码并将APR和APR-util放在srclib文件夹中,然后将目录更改为./srclib/apr并运行: ./configure –prefix=/usr/local/apr sudo make sudo make install 这似乎安装APR好,但是当我从apr-util目录运行./configure ,我收到错误: configure: error: APR could not be located. Please use the –with-apr option. 使用./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr ,错误就会变成: checking for APR… configure: error: the –with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file. 为什么找不到APR?
是否有可能调整Apacheconfiguration以某种方式loggingPOST / GET参数? 例如,这是它当前logging的内容: 174.131.xx.xxx – – [30/Apr/2013:08:41:59 -0500] "POST /admin/bl_orderItem.php HTTP/1.1" 200 44 我想在日志中看到像这样的东西: 174.131.xx.xxx – – [30/Apr/2013:08:41:59 -0500] "POST /admin/bl_orderItem.php?name=John&lastName=Rambo&zip=12331 HTTP/1.1" 200 44 谢谢你的所有build议。
所以查看日志的平均响应时间大约是20-30ms,但是机器上的负载是20+,而使用外部testing的东西似乎要花费一秒钟才能加载。 我无法想象这是所有的networking延迟,所以我很好奇apache日志开始跟踪请求。 如果负载是20,那么这意味着事情在排队,甚至到达acpache进程,但是一旦他们到达那里,只需要30ms来处理?
我已经尝试阅读手册,虽然说实话,我仍然觉得很难理解,并让我头脑里的订单/允许实际做什么,什么应该是Web服务器的默认设置。 我有以下的默认configuration,我已经closures.htaccess和符号链接。 虽然我不确定Order Allow,Deny和Allow from all事实吗? 我应该改变这个从127.0.0.1允许? <Directory /> Options -Indexes -FollowSymLinks MultiViews AllowOverride None Order Allow,Deny Allow from all </Directory> 此外,我需要下面的<Files>还是有更好的方式来写这个阿帕奇? <Directory /var/www/example/subdomains/dev/public/webapp> RewriteEngine Off <Files *> order allow,deny deny from all </Files> <FilesMatch "\.(png|gif|jpe?g|png|css|js|swf|ps|flv)$"> order allow,deny allow from all </FilesMatch> </Directory>
在我的服务器日志(Apache 2.2.3)中,我收到了来自useragent“Mozilla / 4.0(compatible;)”的请求。 一些快速的search似乎表明这些请求是来自试图预取页面的代理,但是这些信息并不是非常确定的。 有没有人有这些经验? 你知道这些请求的真正来源吗? 如果他们是404s,忽略他们是否安全? 示例日志: 1.1.1.1 – – [10/Jun/2010:01:55:01 -0400] "GET /popup/authentication HTTP/1.1" 404 1831 "-" "Mozilla/4.0 (compatible;)" 2.2.2.2 – – [06/Jul/2010:08:50:27 -0400] "GET /images/social/twitter.1.png HTTP/1.1" 304 – "-" "Mozilla/4.0 (compatible;)" 3.3.3.3 – – [08/Jul/2010:14:58:41 -0400] "GET /calendar/list/json/6/27/2010 HTTP/1.1" 404 46 "-" "Mozilla/4.0 (compatible;)" 4.4.4.4 – – [11/Jun/2010:13:41:27 -0400] "GET / […]
我想为我的生产服务器的apache中的MaxClient设置一个最佳值。 计算此值时应考虑哪些参数?
我需要找出哪个版本的Apache Portable Runtime安装在特定的服务器上。 那么如何在不访问日志文件的情况下做到这一点呢?
当我向服务器请求一个没有扩展名但不是目录的URL时,apache会自动为它添加一个.php扩展名。 这个行为在哪里configuration? 编辑:我很抱歉,我的问题并不清楚:我不问如何做到这一点,我只是发现我的本地服务器(Apache / 2.2.11在Debian上)本身(即我没有重写规则),我想知道这可以configuration。