Articles of apache 2.2

阿帕奇没有回应,并没有任何logging经过短暂,强大的“交通波”

我的Apache服务器负载为0.05,服务器的服务器负载一直在300个请求/秒(2兆字节/秒)。 问题是,我的服务体系结构在特定的时刻会导致巨大的stream量(比如300-500人在几秒钟内被JavaScriptredirect到某个页面)。 在这么短的stream量跳跃之后,apache变得没有响应(在firefox中大约30秒后连接重置)而没有logging任何东西。 Apache被冻结,直到apache2重新启动程序。 冻结时,即使是没有PHP或SQL连接的简单HTML文件也不能提供服务(但存在apache2进程) 我尝试了不同的prefork设置从50到几乎1000闲置的工人和最大客户限制10000,但没有什么帮助。 除了没有logging任何东西之外,另一个症状是在冻结前的瞬间,apache状态模块显示(也是最后一次它没有响应之前)几乎每个进程都在等待连接: __R_R_______R__RR______R___R________________RR_______R______R___ _________R__________R_________________________R________CR___R___ ___________R__________________________C__WR__R________________R_ 但在正常的,低调的工作表明: C___R___K_C___C___C_____KK______R___C_C_R______C__K___C________K ____C__KR_RR__C___K___KK_C__R__K__C_CK__RC___CR___R__K__C__R____ ___KR____C_____R______R______K__R_______KC__C_K__R____C_______R_ syslog也没有提供任何东西。 我的机器有64GB RAM,永远不会超过0.1的负载

如何在Apache SetEnvIf值中转义空格

我正在尝试使用SetEnvIf(Apache2,通过.htaccess文件)来存储一个环境variables,其中要分配给variables的值需要包含空格。 例如,试图设置环境variables“AUTH_KEY”的值为“ab”: SetEnvIf Request_URI "^/example" AUTH_KEY="a\ b" 无论我做什么,我都无法逃离价值空间 – 空间作为要创build的env vars之间的分隔符(在上面的AUTH_KEY中创build了值“a”和第二个env var被创build为“b”“)。 我也试过单引号也没有运气。 我如何逃避太空angular色?

服务器响应时间长

我们有一个高stream量的网站,在高峰期有1000并发用户,最less有100用户在同一时间。 平均每天有40,000到100,000访问。 这个问题有时会加载得非常慢(我们把这次命名为灾难时间 :)),那时候我们试图用Firefox加载网站,显示waiting… (我尝试了与世界各地的许多提供商一起) 我们在灾难时间监视服务器, CPU load , Memory Usage情况正常。 另外, MySQL查询日志缓慢,不会有任何查询长达1 sec 。 Apache没有任何错误。 iotop不显示任何导致此灾难的事情。 灾难时间和高峰时间没有任何关系是非常有趣的。 有时灾难发生在300并发用户,而另一个时间则不同。 我找不到他们之间的任何关系。 如何在灾难时间跟踪数据包? 我想知道这个灾难是我们的数据中心的故障(如上游或防火墙)或我们的服务器故障(如Apacheconfiguration,Web应用程序或其他任何我不知道的)。 对于其他数据只是添加评论,然后我编辑我的问题,以提供您需要回答的数据。

Apache MatchRedirectexception正则expression式

我想redirect任何URL为Https并且没有以“system_”开头的URL到同一个URL。 对于这个url exapmle: https://exsite.tld/some/thing/that/not/start/with/pattern 至 : http://exsite.tld/some/thing/that/not/start/with/pattern 但是这个url: https://exsite.tld/system_aas3f4 不应该redirect。 我尝试: RedirectMatch ^/?((?!(system_)).*) http://exsite.tld/$1 但它不会工作。 我不知道有什么问题。

编写某些会话文件名时出现“设备上没有剩余空间”错误

我有一些无法写入的文件名(会话文件)(“设备上没有剩余空间”)。 其他文件名(相同的目录)都很好。 磁盘未满。 文件系统是ext3 尝试创build文件时,PHP发生错误,但错误可以在命令行上重现: # less /path/to/session_data/sess_u2q1pfelfr0jof3mp38jb2eaj1 /path/to/session_data/sess_u2q1pfelfr0jof3mp38jb2eaj1: No such file or directory # touch /path/to/session_data/sess_u2q1pfelfr0jof3mp38jb2eaj1 touch: cannot touch `/path/to/session_data/sess_u2q1pfelfr0jof3mp38jb2eaj1': No space left on device # touch /path/to/session_data/sess_u2q1pfelfr0jof3mp38jb2eaj0 # less /path/to/session_data/sess_u2q1pfelfr0jof3mp38jb2eaj0 # ls -al /path/to/session_data/sess_u2q1pfelfr0jof3mp38jb2eaj1 ls: /path/to/session_data/sess_u2q1pfelfr0jof3mp38jb2eaj1: No such file or directory 请注意不同的文件名。 似乎没有任何模式,但它确实只影响某些文件名,而且似乎无法写入。 为了进一步使事情复杂化,这是一个OpenVZ服务器,但是你不能从虚拟服务器或者硬件节点写/创build这些文件名。 该目录中有很多文件(写入时为18,456,002),但是没有inode问题,并且磁盘肯定没有满。 根据要求,df输出: [root@web1 session_data]# df -h Filesystem Size Used […]

危险给Apache用户一个shell

tl; dr – 在/ etc / passwd中给Apache一个shell有什么危险? 我正在努力获得mod_evasive设置与Apache的斗争DOS尝试。 我使用DOSSystemCommand来运行脚本,将有问题的IP地址添加到iptables中的BANNED链。 我发现我可以使这个过程工作的唯一方法是将Apache的shell从/sbin/nologin更改为/bin/bash 。 但实际上只有脚本的一部分由于没有更改shell而失败。 这是DOSSystemCommand行和它运行的脚本: DOSSystemCommand "/usr/bin/sudo /bin/bash /var/www/html/ban_ip.sh %s" 和脚本…(注意我只是在testing..这就是为什么我有详细的输出和短期禁止时间) #!/bin/bash IP=$1 IPTABLES=/sbin/iptables sudo $IPTABLES -I BANNED -p tcp -s $IP –dport 443 -j DROP sudo $IPTABLES -I BANNED -p tcp -s $IP –dport 80 -j DROP echo sudo $IPTABLES -v -D BANNED -p tcp -s […]

SELinux与NFS共享的上下文

我正在尝试在2个CentOS服务器(filesrv和websrv)之间build立一个NFS共享,用于需要由Apache进程读写的文件夹。 我遇到了可写的一面,我已经缩小到SELinuxconfiguration的麻烦了:如果我在NFS客户端上setenforce 0 ,Apache可以写共享。 NFS服务器的导出文件中的相关行是: /data/files/sitefiles websrv(rw,sync,no_root_squash) NFS服务器上共享文件夹的SELinux上下文是: system_u:object_r:httpd_sys_rw_content_t:s0 我在NFS客户端上的fstab条目是: filesrv:/data/files/sitefiles /var/www/html/webroot/files nfs context="system_u:object_r:httpd_sys_rw_content_t:s0" 0 0 据我所知,这应该挂载与httpd_sys_rw_content_t上下文的NFS共享,但是当我检查它,实际上是: system_u:object_r:httpd_sys_content_t:s0 有什么可能导致它将更严格的背景应用于股票?

将使用iptables DROP目标导致套接字CLOSE_WAIT从来没有完成?

我有一些简单的规则来阻止黑客/垃圾邮件发送者频繁使用的某些IP块,例如: iptables -A INPUT -s 173.208.250.0/24 -j DROP 但是,我注意到apache在几天后挂起,在netstat的输出中显示了许多CLOSE_WAIT,永远不会消失: # netstat -atlpn Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 1 0 ::ffff:10.0.0.107:80 ::ffff:173.208.250.123.50813 CLOSE_WAIT 29125/httpd 这是否可以通过在规则中指定DROP目标引起? 我应该用REJECT吗?

VPS利用比特币挖掘。 如何识别缺陷?

我运行一个Ubuntu VPS来托pipe几个基本的网站,似乎有apache黑客比特币挖掘。 在我的apache error.log中,我看到以下内容。 [Sun Dec 15 06:27:58 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch configured — resuming normal operations [Sun Dec 15 06:27:58 2013] [info] Server built: Jul 12 2013 13:38:21 [Sun Dec 15 06:27:58 2013] [debug] prefork.c(1023): AcceptMutex: sysvsem (default: sysvsem [Sun Dec 15 09:14:16 2013] [info] server seems busy, (you may need […]

modsecurity apache mod-security.conf丢失

问候Serverfaultians。 我不是一个服务器的人,你可以从我的noob得分1分看到。 但也许那些更精通可以帮助我。 我正在使用Ubuntu v13.10 32位服务器和Apache2 v2.4.6,我试图在互联网上的生产/testing服务器上设置和configurationmodsecurity和modevasive 。 我试图按照这个教程: http : //www.thefanclub.co.za/how-to/how-install-apache2-modsecurity-and-modevasive-ubuntu-1204-lts-server 。 但在步骤3: 现在将这些规则添加到Apache2。 打开terminal窗口并input: sudo vi /etc/apache2/mods-available/mod-security.conf 这个文件不存在。 有什么build议么?