Articles of apache 2.2

服务器上的Apache Django OOM与4GB内存

我在Ubuntu Linode上运行一个生产Django站点,带有4GB内存。 主要进程是Apache2,MongoDB,Memcache,PostgreSQL,Tomcat6和Redis。 Apache OOM每天大约10次。 我多次调整了apache2.conf中的值,并没有发现任何效果。 请求数量和内存峰值或请求和内存峰值之间没有明显的相关性。 我说“spikes”,因为通常Apache只消耗很less的内存,然后在一秒钟内突然跳到3.5GB并被内核杀死。 使用JMeter(负载testing软件)我无法人为地触发尖峰,正常情况下负载下的内存消耗非常低且稳定。 内存使用的24小时图(来自Linode Longview): http : //i.imgur.com/ysIYe8l.png 这也看起来像内存使用也在缓慢攀升。 从系统日志: kernel: apache2 invoked oom-killer: … kernel: 11705 total pagecache pages kernel: 5472 pages in swap cache kernel: Swap cache stats: add 76719087, delete 76713615, find 92563708/94246314 kernel: Free swap = 0kB kernel: Total swap = 2097148kB kernel: 1050623 pages […]

使用Apache Handler通过FastCGI重新安装Apache

目前我们正在用fastcgi运行apache。 这就是我们的phpinfo上说的: Server API CGI/FastCGI 我们需要把它改成Apache。 我该怎么做呢?

被DOS或需要更多的内存?

我有一个运行apache2,php和MySQL的centos 6服务器。 Apacheconfiguration有几个虚拟站点,因为服务器运行六个网站,六个站点中的三个使用MySQL,另外三个不使用。 最近我发现,使用MySQL崩溃的网站 – 报告错误“无法连接到SQL数据库..” 查看日志后,看起来有多个Apache运行的实例吃掉了我所有的内存 – 这导致服务器为了阻止服务器死亡而终止MySQL进程,并且不久之后它将恢复(偶尔我必须修复一些表格) 为了试图控制这种情况,我把max_connections降到了100,但是这并没有帮助 现在我不知道,如果我需要更多的内存(安装1GB),或者如果我被拒绝服务攻击。 诚实地说,我们确实希望服务器有大量的stream量,但是我怎么知道一个IP是否连续打到这个盒子? 如果有帮助,我在下面的“正常操作”中粘贴了一些输出 free -m total used free shared buffers cached Mem: 992 771 221 0 15 87 -/+ buffers/cache: 668 323 Swap: 976 39 937 ps aux | grep apache apache 17148 0.1 3.4 430836 35036 ? S 06:34 0:10 /usr/sbin/httpd apache 17150 0.1 […]

Ubuntu的网站突然运行缓慢

我pipe理的网站今天突然开始运行。 我试图找出瓶颈在哪里。 我创build了一个14kb的文本文件,这需要5秒钟在浏览器中打开! 我相信问题不在于我的互联网连接 – 例如,我可以看YouTube。 如果我访问lan上的14kb文件,那么页面需要6ms才能打开。 这让我觉得这个问题不是apache。 但是,网站也使用mysql,当我打开一个显示数据在一个表中的页面需要的时间 – 如10分钟或更多。 在LAN上,这个直接打开。 我检查完整的进程列表,而页面正在通过互联网加载,并有很长的时间查询: mysql> show full processlist; +——+——+———–+——+———+——+——-+———————–+ | Id | User | Host | db | Command | Time | State | Info | +——+——+———–+——+———+——+——-+———————–+ | xxxx | root | localhost | fms | Sleep | 307 | | NULL | | yyyy | […]

这个Apache access_log条目是什么意思?

68.96.87.214 – – [07/Aug/2013:21:29:25 +0000] "GET /HNAP1/ HTTP/1.1" 403 501 "*************" "Mozilla/4.0 (compatible; Opera/3.0; Windows 4.10) 3.51 [en]" 177.47.105.41 – – [07/Aug/2013:21:57:26 +0000] "POST /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6E HTTP/1.1" 403 476 "-" "-" 193.111.139.189 – – [08/Aug/2013:00:33:26 +0000] "GET /oly/hello.php?i=list&b=oly_living HTTP/1.1" 403 497 "-" "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/5.0);(b:2600;c:INT-3360;l:09)" 176.61.139.107 – – [08/Aug/2013:03:57:55 +0000] "GET […]

从Web浏览器重新加载PHP5-FPM:内部服务器错误500

我正在创build一个免费的共享主机服务,以获得乐趣和学习。 我做了一个简单的表单,用户input子域名和ftp密码。 当用户点击提交时,脚本生成一个linux用户,用crypt()encryptioninput的密码,然后将数据发送到一个linux脚本。 以下是完整脚本的错误部分: echo "[$1] user = $1 group = $1 listen = /var/run/sock_$1.sock pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 php_value[disable_functions] = \"phpinfo, system, exec, shell_exec, passthru , ini_alter, dl, pfsockopen, openlog, syslog, readlink, symlink, link, leak, fsockopen, popen, escapeshellcmd, apache_child_terminate apache_get_modules, apache_get_version, apache_getenv, apache_note,apache_setenv,virtual\" […]

我如何强制Apache在本地主机上使用http_proxy进行没有iptables的出站stream量?

我有一个Web服务器与几个用户的几个应用程序。 由于我不确定应用程序正在做什么以及它们产生的出站http / httpsstream量,因此我想要获得更多的控制权。 所以我的想法是使用一个只监听127.0.0.1:3128的内部Squid。 起初我只想看一下访问日志,第二步是安全相关的URL和域的黑名单。 这些列表应该过滤apache和所有subprocess的出站stream量(例如:其中一个应用程序正在作为系统调用运行curl)。 我已经添加了http_proxy到/ etc / sysconfig / proxy,到/ etc / environment和apache系统用户的.bashrc。 当我使用shell时,一切都很好,Apache根本不使用代理。 我已经在更改后重新启动了apche,但没有成功。 顺便说一下,我在Web服务器上运行OpenSuse 11。 解决方法:(感谢ALex_hha,对不起,我想我正在读你的答案太快)我input了下面的iptables – 规则: iptables -t nat -I OUTPUT -p tcp –dport 80 -m owner –uid-owner apache -j DNAT –to-destination 127.0.0.1:3128 并将Squid设置为透明模式: http_port 127.0.0.1:3128 transparent 现在它运行得很好。

Apache无法在ssl之后启动

在安装ssl证书(使用ssl.conf)之后,apache将不会重新启动,只会在日志中给出这些警告: [Wed Aug 14 14:16:46 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Wed Aug 14 14:16:46 2013] [notice] SSL FIPS mode disabled 使用Cent OS 6.4 完整日志(使用日志级别debugging): [Thu Aug 15 12:54:00 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Thu Aug 15 12:54:00 2013] [info] Init: Seeding PRNG with 256 bytes of entropy [Thu Aug 15 12:54:00 […]

Apache的httpd:我怎么能从所有拒绝,允许从特定的IP地址

有人可以看看下面的代码的语法,让我知道如果是正确的 – 我的意图是排除在“允许”部分中指定的IP范围的htaccess,其余所有人在访问该网站时都要求进行身份validation。 这只是“否认”每一个。 允许从指定的IP范围不应该要求htaccess,但它要求每一个htaccess。 任何人都可以证实这一点,并帮助我做这个工作: Options FollowSymLinks AllowOverride None AuthUserFile /etc/.htpasswd AuthGroupFile /dev/null AuthName EnterPassword AuthType Basic require valid-user Order deny,allow Deny from all Allow from 30.21.37. Allow from 113.11.23.23

RewriteRule不能使用mod_userdir

我的设置: Ubuntu 13.04 Apache / 2.2.22(Ubuntu) PHP 5.4.9-4ubuntu2.2 – $ ls /etc/apache2/mods-enabled/*.load alias.load auth_basic.load authn_file.load authz_default.load authz_groupfile.load authz_host.load authz_user.load autoindex.load cgi.load deflate.load dir.load env.load expires.load mime.load negotiation.load php5.load reqtimeout.load rewrite.load setenvif.load status.load userdir.load 使用redirect到/home/*/www mod_userdir 在/home/*/www/styles有一个.htaccess文件,其中包含以下指令: RewriteEngine On RewriteRule (styles-files/.+)\.(\d{10})\.(\w{2,4})$ $1.$3 [L] 现在这里是令人困惑的部分(个人信息蒙上了阴影) 加载http://localhost/~***/styles/styles-files/css/jquery.qtip.css可以正常工作(文件显示在浏览器中) 加载http://localhost/~***/styles/styles-files/css/jquery.qtip.1376640525.css给我404错误,但消息说“/ home / *** / www / styles / styles-文件/ css […]