Articles of apache 2.2

繁忙的web服务器上的Apache日志logging策略:写争用?

我们有一个繁忙的networking服务器(> 500万点击/天),服务约500,000个独特的文件。 我们在FreeBSD 7.2上运行Apache。 根据iostat -x,瓶颈似乎是驱动器的search速度(我们正在运行带有两个旋转磁盘的RAID 1)。 事实上,Apache正在将其访问日志写入这些影响读取速度的相同磁盘? 你通常添加一个单独的主轴日志? 如果是这样,你添加一个单一的主轴或RAID它(你会明显失去日志数据,否则,如果磁盘失败)? 还是应该通过networking接口将Apache日志推送到中央日志logging服务器? 我假设可能是一个单独的networking接口,而不是提供所有这些HTTP请求的networking接口?

SSL虚拟主机与Apache的IP要求

我有一个Apache安装使用ssl的多个域名。 我知道我需要把每个域放在一个单独的IP外部。 这同样适用于NAT背后的IP吗? 也就是说,我在假设的外部IP上有一个域名:1.2.3.4,另外一个域名是1.2.3.5(显然这些IP是由IP组成的) 内部这些IP都指向192.168.1.5。 它是否必须是1:1的映射,因为1.2.3.4域将指向192.168.1.5,而1.2.3.5 IP必须指向192.168.1.6? 他们都可以指向192.168.1.5,仍然工作?

Apache的mod_deflate不放气…

我在使用mod_deflate遇到了一些麻烦…具体来说,这并不是真正的缩小任何东西。 我正在运行Apache2和Debian 4.我有a2enmod deflate ,并把它放在/etc/apache2/mods-enabled/deflate.conf : AddOutputFilterByType DEFLATE text/html text/plain 然而,当我curl -I http://host/robots.txt ,我没有看到任何标题提示输出正在缩小(和这个怀疑是确认当我tail access.log ,看到我的DeflateFilterNote在日志是- )。 我知道“插入”,因为如果我添加: SetEnv force-gzip "yes" 输出被压缩。 那么,我在做一些明显而愚蠢的错误吗? 或者是什么?

为现有的MySQL安assembly置PHP

我正在为我的客户接pipe一名前高科技员工的基本pipe理职责。 在CentOS服务器上,我有以下几点: Apache,PHP和MySQL。 他已经安装了PHP,但没有configurationMySQL扩展(我假设,因为服务器只托pipe一个基于rails的网站)。 所以我需要重新configurationPHP来使用MySQL扩展。 这里是当前的PHPconfiguration(来自phphinfo();): './configure' '–build=i686-redhat-linux-gnu' '–host=i686-redhat-linux-gnu' '– target=i386-redhat-linux-gnu' '–program-prefix=' '–prefix=/usr' '–exec-prefix=/usr' '– bindir=/usr/bin' '–sbindir=/usr/sbin' '–sysconfdir=/etc' '–datadir=/usr/share' '– includedir=/usr/include' '–libdir=/usr/lib' '–libexecdir=/usr/libexec' '– localstatedir=/var' '–sharedstatedir=/usr/com' '–mandir=/usr/share/man' '– infodir=/usr/share/info' '–cache-file=../config.cache' '–with-libdir=lib' '–with-config- file-path=/etc' '–with-config-file-scan-dir=/etc/php.d' '–disable-debug' '–with-pic' '– disable-rpath' '–without-pear' '–with-bz2' '–with-curl' '–with-exec-dir=/usr/bin' '– with-freetype-dir=/usr' '–with-png-dir=/usr' '–enable-gd-native-ttf' '–without-gdbm' '– with-gettext' '–with-gmp' '–with-iconv' '–with-jpeg-dir=/usr' '–with-openssl' '–with- png' […]

mod_proxy协议处理程序的问题

我尝试使用以下规则(基于' 安装Plone with Apache ')将传入的Webstream量转发到我的Ubuntu设置中的Plone服务器: <VirtualHost *:80> ServerAlias www.mydomain.com ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost On ProxyPass / http://localhost:7373/VirtualHostBase/http/mydomain.com:80/plonesite/VirtualHostRoot/ ProxyPassReverse / http://localhost:7373/VirtualHostBase/http/mydomain.com:80/plonesite/VirtualHostRoot/ #ProxyPass / http://localhost:7373/ukpa/ #ProxyPassReverse / http://localhost:7373/ukpa/ </VirtualHost> 这两种变化,但是产生和内部服务器错误,在日志中显示为: [警告]代理:没有协议处理程序是有效的URL /。 如果您正在使用mod_proxy的DSO版本,请确保代理子模块包含在使用LoadModule的configuration中。 我可以通过lynx使用地址http:// localhost:7373 / ukpa / (因此注释掉试图简单地转发到底部)来在本地浏览该站点。 我哪里错了?

如何在closures浏览器后让Apache完成运行Perl脚本?

我有一个Perl脚本,由最终用户在Web浏览器中单击快捷方式来激活。 该脚本迭代散列值列表。 当每次迭代向数据库中插入一行时,它会向浏览器输出一些HTML。 环境是Perl,Windows Server 2003标准版,IIS。 我最近迁移到Apache。 传统上迭代次数很less,大多数用户在页面加载完成后closures浏览器。 现在,我们有一个情况,最多有5000次迭代。 现在需要很长时间(1分钟)来执行这5000次迭代。 这不是问题。 问题是,当用户closuresWeb浏览器时,Apache会杀死Perl脚本,因为浏览器没有确认最近发送的HTML,所以我们没有把行插入数据库。 我已经在IIS下进行了testing,用户closures了Web浏览器后,Perl脚本继续运行,并插入了所有的行。 在Apacheconfiguration文件中是否有一个设置会强制Apache完成运行Perl脚本,即使在浏览器closures和套接字被删除之后? 这就是我们正在做的: foreach my $Destination (sort keys %{$self->{_Destinations}}) { print qq! <td $self->{_bgcolor}>$Destination Queued</td> !; if ($self->{_Data}->Execute(@params)) {&error} } 我知道我们应该做所有的数据库插入,然后做我们的打印,但这是遗留代码,如果我可以让Apache在这方面像IIS一样行事,那么我将有时间做一个更彻底的重写这个脚本。

具有一个IP地址但不同端口的多个SSL域?

我使用的是Ubuntu 9.10,apache2和php5。 在一个IP地址上但在不同的端口上托pipe多个SSL站点是个好主意吗? 如果是的话,我应该使用什么端口?

我如何给由www-data创build的文件提供默认的组写入权限?

我们的Apache运行www-data:psacln 如果这条线路运行; <?php file_put_contents("./file.txt",""); 那么Apache创build这个文件没有写入权限的组, -rw-r–r– 1 www-data psacln 9 2010-02-25 16:17 file.txt 我怎样才能设置我们的ubuntu / apache,以便在网站中创build文件/文件夹时,默认情况下可以提供组写入权限?

WebDav重命名在Nginx后面安装的Apache mod_dav上失败

我正试图解决通过WebDav重命名文件的问题。 我们的堆栈由一台机器组成,通过Nginx,Varnish和Apache提供内容。 当您尝试重命名文件时,操作将失败,并显示当前正在使用的堆栈。 要连接到WebDav,客户端程序必须: 通过https:// host:443连接到NginX Nginx解开并转发请求到http:// localhost:81上的Varnish服务器 Varnish通过http:// localhost:82将请求转发给Apache,通过mod_dav提供会话 这里有一个失败的重命名的例子: $ cadaver https://webdav.domain/ Authentication required for Webdav on server `webdav.domain': Username: user Password: dav:/> cd sandbox dav:/sandbox/> mkdir test Creating `test': succeeded. dav:/sandbox/> ls Listing collection `/sandbox/': succeeded. Coll: test 0 Mar 12 16:00 dav:/sandbox/> move test newtest Moving `/sandbox/test' to `/sandbox/newtest': redirect to […]

一旦服务器被添加到垃圾邮件发送者“开放代理”列表中如何禁用代理请求?

我刚从一家新公司开始,一直在设置他们的Apache web服务器conf文件,只是为了发现他们的Apache服务器已经成为全球开放的代理服务器两个月。 我已经在httpd.conf文件中设置了ProxyRequests Off,并重新启动了Web服务器,但是访问日志文件仍在以惊人的速度增长(每天大约一个演出)。 我注意到另外一个问题在这里发布( Apache命中代理请求 ),但他们的访问日志应该是返回404错误,而我的似乎是返回403和404代码…这是正确的吗? 以下是我的访问日志中的几行: 87.118.118.124 – – [16/Mar/2010:10:56:36 -0400] "GET http://www.c5interlude.ru/torrent/viewtopic.php?p=2501 HTTP/1.0" 404 219 "http://www.c5interlude.ru/torrent/viewtopic.php?p=2501" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)" 117.41.184.27 – – [16/Mar/2010:10:56:36 -0400] "GET http://ad.xtendmedia.com/st?ad_type=iframe&ad_size=300×250&section=790074 HTTP/1.0" 404 200 "http://www.newbiegamer.com" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Alexa Toolbar)" 122.224.55.222 – – [16/Mar/2010:10:56:36 -0400] "GET […]