Articles of httpd

运行HTTPD的多个实例,虚拟内存不断耗尽?

我注意到我的VPS今天performance怪异。 我已经把它设置为一个Web服务器(以及MySQL,PHP,FTP等),目前只有一个网站在那里运行。 我今天早些时候注意到,该网站会间歇性地断开与数据库的连接,并且也根本无法加载。 我打开了Webmin,当它最终加载(花了一段时间),它报告说I / O的CPU语言是100%,而125.47MB虚拟内存中的125.39MB用完了。 我重置了VPS,并且在它恢复在线后,CPU读取它正在以100%空闲运行,并且正在使用0KB的RAM。 1小时44分钟后,服务器现在说我正在使用7.36MB的RAM。 它还说,我有66个进程正在运行,并看着我有9个httpd服务运行的实例。 我在想,httpd服务正在吃掉RAM和CPU(每个实例报告它使用大约330000KB的RAM)。 由于我只有一个网站上运行的服务器(和Webmin的一个实例)不应该期望看到只有一个httpd运行的实例吗? 或者这是正常的? 如果httpd的多个实例不是问题,还有什么可能导致这些问题? 编辑: CPU使用情况列出的进程是: ID Owner CPU Command 2401 root 1.3 % /usr/libexec/webmin/proc/index_cpu.cgi<br /> 1 root 0.0 % /sbin/init<br /> 2 root 0.0 % [kthreadd]<br /> 3 root 0.0 % [migration/0]<br /> 4 root 0.0 % [ksoftirqd/0]<br /> 5 root 0.0 % [watchdog/0]<br /> […]

Apache + Codeigniter +新服务器+意外的错误

好的,这里是这样的情况:我用我的codehostiter网站在bluehost是我没有root权限,我已经将该网站移动到rackspace。 我没有改变任何的PHP代码,但有一些意想不到的行为。 意外行为: http://mysite.com/robots.txt旧的和新的解决scheme的机器人文件 http://mysite.com/robots.txt/旧的bluehost安装程序parsing为我的codeigniter 404错误页面。 rackspaceconfigurationparsing为: 未find请求的URL /robots.txt/在此服务器上找不到。 **这个实例让我相信我的mod重写可能会有问题,或者缺less这个问题。 第一个通过php正确地产生错误,而第二个senario让服务器处理这个错误。 这个问题的下一个例子更麻烦:' http : //mysite.com/search/term/9 x 1-1%2F2 white /' 新网站的结果: 错误的请求您的浏览器发送了一个此服务器无法理解的请求。 旧网站的结果是:正在加载的实际网页以及未编码的search字词。 我不得不假设,这与我到新服务器时,我从根级htaccess文件到httpd.conf文件和虚拟服务器默认和default-ssl的事实有关。 他们来了: 默认文件: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName mysite.com DocumentRoot /var/www <Directory /> Options +FollowSymLinks AllowOverride None </Directory> <Directory /var/www> Options -Indexes +FollowSymLinks -MultiViews AllowOverride None Order allow,deny allow from all RewriteEngine On […]

在日志中奇怪的“GET / api / levels /”和“GET / play /”请求

我已经设置了新的Amazon EC2实例。 在一两天内,大约10秒内(例如66.249.76.84,66.249.74.152)就开始从“类似谷歌机器的”IP(例如66.249.76.84,66.249.74.152)中获得奇怪的“GET”请求: 66.249.74.152 – – [10/Apr/2013:06:05:02 +0000] "GET /play/gp4GbjXBD4B3?sh=04f2fd19ae2dd623e7135d29a1894f03&sh=f172a32c89190e28f9c27123d7c6cf43&sh=04f2fd19ae2dd623e7135d29a1894f03 HTTP/1.1" 404 295 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 66.249.76.84 – – [11/Apr/2013:03:51:44 +0000] "GET /api/levels/2ry7ZAh0Y91r HTTP/1.1" 404 295 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 他们正在检查文件夹中的散列 /play/'some_hash_here' /profile/'some_hash_here' /level/'some_hash_here' /api/'some_hash_here' 我从来没有这个网站上的文件夹。 但是,要做到这一点,我试图阻止他们在robots.txt User-agent: * Disallow: Crawl-delay: 120 Disallow: /play Disallow: /profile Disallow: /level 但它根本没有帮助,它只是不读robots.txt。 为了摆脱他们在我的error_log文件中提供的所有混乱,我已经在.htaccess文件中创build了这样的规则 Redirect 301 […]

多个使用JBoss集群的httpd:提供httpd HA

我有一个这样的工作configuration: +—–+ +—–+ +—–+ +—–+ | i1 | | i2 | | i3 | … | in | JBoss Cluster +–+–+ +–+–+ +–+–+ +–+–+ | | | | +———-+—–+—-+—-…—-+ | +—+—+ | httpd | +——-+ | WAN 也就是说, httpd平衡负载并为HA提供JBoss集群。 现在,我需要为httpd提供HA。 如果httpd服务器出现故障,应该使用另一个同一个作业(JBoss集群中的LB和HA)进行备份。 我不知道如何pipe理会话数据,如果两个httpd实例之间的简单HAconfiguration可以正常工作。 有没有人遇到这样的情况?

间歇AWS Linux AMI服务器错误“文件不存在:/ var / www / html / var”

在Zend MVC应用程序的所有区域发生断断续续的错误“文件不存在:/ var / www / html / var”,导致页面偶尔无法加载 – 通常情况下,加载完美。 我们的设置 AWS上的LAMP堆栈上的MVC应用程序: Zend 1前端应用程序在一个中等c1 AWS Linux AMI 64位实例 MySQL数据库上的中型m1 AWS Linux AMI 64位实例 在应用服务器上与MVC应用并行运行phpbb3论坛,在数据库服务器上有2个数据库(一个用于应用,一个用于phpbb) PHP的5.4.22 MySQL 5.1.72 + mysqli 与应用和数据库服务器相关联的弹性IP地址 应用程序和数据库服务器使用私有IP连接(即应用程序服务器连接到数据库服务器私人IP,数据库服务器安全组接受应用程序服务器私人iP端口3306) 目前正在将该站点作为开发站点运行,使用主站点的开发目录,例如: www.mysite.com/dev/ 在/dev/configs/application.ini中我们定义如下: setting.basedir = dev setting.baseurl = http://www.mysite.com/dev setting.securebaseurl = http://www.mysite.com/dev 有我们的DNS与godaddy,并使用A主机= IP地址(即IP.IP.IP.IP)而不是CNAME 没有使用虚拟主机(因为我们每个“服务器”只有一个站点) 我们有htaccess文件和各种redirect – 但在我们的本地LAMP服务器没有错误 我们正在使用minify并将RewriteBase注释掉(默认情况下) httpd.conf的设置大多是默认的(让我知道是否有重要的,这里没有列出) ServerName www.mysite.com UseCanonicalName […]

在Apache上集成Kerberos身份validation和Git服务器

第一次在这里问一个问题,所以我希望我是在正确的地方这样做。 我也在这里search类似的问题,但找不到类似的东西。 这是我的问题。 我们目前有一个git服务器(使用Gitorious),目前运行良好。 我被要求通过使用Kerberos进行身份validation来为Web界面添加一个额外的安全层。 所以我继续configurationApache,以便在用户尝试访问Web界面时使用mod_auth_kerb提示用户进行身份validation。 就networking界面而言,一切都很好。 然而,当试图从命令行拉/推任何东西,它会失败可怕。 这里是相关的信息: 在我的apacheconfiguration中,我尝试了以下两种方法,都产生了相同的结果: <Directory /home/git/active/> AuthName "Restricted Access Kerberos" AuthType Kerberos Krb5Keytab /etc/httpd/conf/httpd.keytab KrbAuthRealms TEST.COMPANY.COM KrbMethodNegotiate On KrbMethodK5Passwd On require valid-user </Directory> <Location /> AuthName "Restricted Access Kerberos" AuthType Kerberos Krb5Keytab /etc/httpd/conf/httpd.keytab KrbAuthRealms TEST.COMPANY.COM KrbMethodNegotiate On KrbMethodK5Passwd On require valid-user </Location> 以下是在尝试从命令行拉出时出现的内容: == Gitorious: ========================================================== Access denied or […]

在Strace中的Apache内存腐败

不确定这是否是SF或SO问题。 非常(非常)繁忙的LAMP服务器在负载平衡的环境Apache 2.2.26在Centos 5.10。 我试图追查挂起httpd进程的代码或系统问题。 这些调用永远在W,“发送回复”状态,TCP连接保持保持连接,并且apache的超时不会被触发。 最终我们积累了足够的挂起进程,我必须反弹httpd进程。 这似乎围绕着所有的挂断电话的一个strace的结束。 我真的不确定下一步该去哪里。 似乎Apache正试图写出来的控制台,我不知道这是否正常。 但malloc错误肯定指向有问题。 任何帮助(甚至疯狂的想法)赞赏。 我不确定有没有有趣的moudles,但这里是LoadModules。 LoadModule rewrite_module modules / mod_rewrite.so LoadModule info_module modules / mod_info.so LoadModule auth_digest_module modules / mod_auth_digest.so LoadModule proxy_module modules / mod_proxy.so LoadModule proxy_balancer_module modules / mod_proxy_balancer.so LoadModule proxy_connect_module modules / mod_proxy_connect.so LoadModule proxy_http_module modules / mod_proxy_http.so LoadModule ldap_module modules / mod_ldap.so LoadModule authenz_ldap_module […]

VirtualDocumentRoot和ProxyPassMatch

我有以下的Apacheconfiguration: ServerName localhost UseCanonicalName Off LogLevel debug <VirtualHost *:8080> ServerName _default_ VirtualDocumentRoot /Users/alex/Sites/op3/cms/account/%-2/domain/%-3+/webroot DirectoryIndex index.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L,PT] LogLevel rewrite:trace6 LogLevel proxy:trace6 ProxyPassMatch ^/(.+\.php)(\?.*)?$ fcgi://127.0.0.1:9000/Users/alex/Sites/op3/cms/$1$2 <Directory /Users/alex/Sites/op3/cms> Options +Indexes Require all granted </Directory> </VirtualHost> ProxyPassMatch的path不正确,但我不知道如何构buildpath。 在ProxyPassMatch中使用相同的%-2和%-3+令牌似乎不起作用。 我试图用我find的另一种解决scheme ,但这是我能想到的最好的解决scheme : ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php5-fpm.sock|fcgi://localhost:9000/Users/alex/Sites/op3/cms/account/%-2/domain/%-3+/webroot/$1 …这也没有工作。 有任何想法吗?

PHP-FPM + Apache(403禁止消息)

我无法安装php-fpm。 当我安装它,并打开一个PHP文件,我得到一个403 forbiden状态代码 看日志是看 client denied by server configuration: /usr/lib/cgi-bin/php5-fcgi 我改变了我的指示,允许所有问题修复。 有没有办法允许访问cgi-bin而不必允许所有人访问/? 到目前为止,我已经尝试从127.0.0.1允许我还尝试添加一个指令的CGI斌。 既没有工作 指令 <Directory /> Order allow,deny Allow from All Options None AllowOverride None </Directory> <Directory "/srv/public_html"> Options SymLinksIfOwnerMatch AllowOverride None Order allow,deny Allow from all </Directory> FastCGIconfiguration AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization […]

Apache httpd反向代理将SSL委托给后端

通常使用Apache作为反向代理完成SSL卸载,所以Apache处理所有SSL的东西,后端服务器只是pipe理普通的http。 但是有可能做相反的事情吗? 我不是在说Apache和后端通过https进行通信的SSLProxy。 我希望我的后端与客户端协商SSL。 有点为什么我需要这样的: 我正在使用客户端证书身份validation,当身份validation失败时,用户可以获得浏览器特定的非用户友好错误页面。 所以我们正在创build一个诊断页面,向用户显示authentication失败的原因。 这个页面应该允许任何证书,所以我们可以检查我们的自我,找出错误。 起初,我们尝试了Apache上的optional_no_ca设置,但它仍然会执行一些检查,例如到期date。 我们能够使它与Tomcat一起工作(在Java中使用它也很方便)。 现在唯一可行的解​​决scheme似乎设置了第二台服务器(物理)与tomcat作为前面。 但是,渲染一个页面似乎很重。