当我replace服务文件(或者修改符号链接)并同时下载这个文件时,Apache很less(只有很小的百分比)用旧文件的头文件进行响应,但是用新文件的内容进行响应。 我在虚拟和物理机器上,在不同的发行版上(Red Hat,CentOS,Debian)在本地和远程的几个Apache 2.2(2.2.3,2.2.22- Debian stable)版本上进行了testing – 我总是可以使用它来复制它Python脚本反复下载线程(20-200线程)中的文件,并不时更换它在服务器(如每100ms)。 问题在哪里? 是Apache的错,还是我做错了什么? 更新:我也testing过Nginx,它没有这个问题。 但在极less数情况下(比Apacheless100倍),它不会看到文件并提供默认内容(404或默认页面)。
像问题状态一样,只有第一个虚拟主机被加载。 如果我去第二个域,那么它只是指向第一个域。 我可以加载第二个域上的单个文件,但我无法加载索引文件。 NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/intranet/public_html ServerName employees.nationalpurchasingpartners.com ServerAlias employees.nationalpurchasingpartners.com </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/procurement/public_html ServerName www.procurementnews.com ServerAlias procurementnews.com </VirtualHost> 我已经通过以下链接无效。 http://wiki.apache.org/httpd/CommonMisconfigurations 添加curl的输出: HTTP/1.1 200 OK Server: Apache Set-Cookie: COOKIE=10.5.19.235.1396565642197130; path=/ ETag: "AAAAUSZYEDQ" Last-Modified: Thu, 06 Mar 2014 21:50:26 GMT Set-Cookie: referrer=; path=/ Set-Cookie: t=d9979760bb8211e39a570015c5e70b87; path=/ Set-Cookie: referrer=procurementnews.com; […]
我调整了Apache 2.2服务器(它与MySQL + Courier + Mongo + Postgre共享)。 该服务器采用裸机(无virtualizataion),采用2个四核至强(共16个内核)和12GB ECC内存(未来几天可升级至24GB)。 MySql有innodb_buffer设置为2G,并没有问题。 Mongo和Postgre几乎没有碰到 – 只是为了发展。 问题是Apache正在吃掉所有可用的内存,最终使用了所有的交换(因为它使用更多的内存,所以崩溃了MySql)。 我们有Apache 2.2与工作者MPM和mod_security。 每当我们重新启动它,我们有aprox 8G的免费RAM。 我想了解一些事情: 工作服务器top显示的进程之间的关系是什么? 我期望最多可以看到10个进程(如工作者设置中的ServerLimit – 不考虑主进程)。 每个线程或每个进程使用的RES内存量是多less? 在下面的mod_status输出中,有很多READING请求在那里停留很长时间。 我试过启用ExtendedStatus来发现客户端,但是我找不到任何有用的信息 – 有什么build议吗? 与实际的内存使用情况,我需要多less内存来服务400并发连接? (因为mod状态显示250已经耗尽) 怎么样提高ThreadsPerChild而不是提高MaxClients / ServerLimit? <IfModule worker.c> StartServers 2 MaxClients 250 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 ServerLimit 10 </ IfModule>configuration TOP显示(仅适用于Apache): 顶部 – […]
我有一个centos 6.5 web服务器运行2个网站closures1 ip地址通过使用虚拟主机。 domain1.com和domain2.com – 都托pipe在上面的同一个Web服务器上。 我需要将约40页从domain1redirect到domain2,“例如”: domain1.com/page1 -> domain2.com/new-page-1 domain1.com/welcomepage -> domain2.com/new-welcome-page domain1.com/johnsmith -> domain2.com/elvis domain1.com/test -> domain2.com/production *请注意,我正在redirect的页面不在同一个结构/名称下,而是转到完全不同的结构/名称。 任何人都可以build议我可以/需要做什么来完成这项任务? 编辑#1我试图通过我的httpd.conf文件中的VirtualHost部分。 请参阅下面的参赛作品。 <VirtualHost *:80> ServerName domain1.com ServerAlias www.domain1.com RedirectPermanent / http://www.domain2.com/page12345/ </VirtualHost> <VirtualHost *:80> ServerName domain1.com ServerAlias www.domain1.com RedirectPermanent /AboutUs/Founders http://www.domain2.com/about-us-founders/ </VirtualHost> 在上面的两个条目中,只有第一个条目正确地工作并redirect。 第二个是redirect到: http : //www.domain2.com/page12345/AboutUs/Founders有什么想法?
我宁愿没有 ServerAdmin 在我的VirtualHost,因为它只是吸引垃圾邮件。 没有用过的东西。 可以忽略吗?
CORS的一个反复出现的问题是规范规定请求头从预检请求(HTTP OPTIONS)中被剥离。 但是,如果服务器需要身份validation,这意味着预检请求将失败(因为Authorization标头未包括在内),并且将无法接收所需的access-control-allow-origin标头。 唯一的出路似乎是将服务器configuration为不强制对HTTP OPTIONS请求进行身份validation。 有没有办法在Apache 2.4,我可以Require valid-user有条件的HTTP方法?
我有一个ProxyPassconfiguration为达到以下目的:在我的服务器上,我启动一个服务,提供restAPI监听端口7777.从客户端,我希望能够调用这个API是这样的: http://example.org/servicename/PARAMETER 对这个API的完整调用应该如下所示:HTTP PUT @ http://example.org/servicename/PARAMETER (其中PARAMETER是一些string)。 内部这应该转化为以下url: http://server.ip:7777/servicename/PARAMETER 一切都按预期工作,只要PARAMETER不是(!)像这样: http://parameter.org : http%3A%2F%2Fparameter.org (实际上我需要URL编码: http%3A%2F%2Fparameter.org )。 总之,这个电话是http://example.org/servicename/http%3A%2F%2Fparameter.org 参数中的http://混淆了apache,导致在对该调用的回复中出现以下错误消息: !DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /servicename/http://parameter.org was not found on this server.</p> <hr> <address>Apache/2.2.22 (Debian) Server at example.org Port 80</address> </body></html> 如果我用例如testreplacehttp%3A%2F%2Fparameter.org ,那么一切正常。 不知何故http://在参数混淆了Apache。 有没有办法让Apache忽略它? 我这个虚拟主机的当前configuration如下所示: […]
查看Fusion Reactor的附图,显示只是继续运行的页面。 时代已经进入了数百万人,我已经离开他们看看他们是否会完成,但那是当时只有2或3。 现在我得到了几十个从未完成的页面。 这是不同的查询,我看不到任何巨大的模式,除了它似乎只适用于我的7个数据库中的3个。 top显示的Coldfusion CPU使用率大约在70-120%之间,深入研究Fusion Reactor的详细信息页面显示所有build立时间都只用于Mysql查询。 show processlist没有任何exception,执行10 – 20个连接处于睡眠状态。 在这段时间内,许多页面都完成了,但是随着挂起的页面数量的增加,他们似乎永远无法完成服务器,最终只是返回白页。 唯一的短期解决scheme似乎是重启Coldfusion,这远非理想。 最近添加了一个Node.js脚本,每5分钟运行一次,并检查批处理csv文件,我想知道是否导致了一个窃取所有MySQL连接的问题,所以我禁用了(脚本没有connection.end ()方法),但这只是一个快速的猜测。 不知道从哪里开始,任何人都可以帮忙? 最糟糕的部分是永远不会超时的页面,如果他们这样做不会那么糟糕,但过了一段时间没有得到服务。 我正在使用Coldfusion和NodeJS作为我的主要脚本语言运行CentOS LAMP堆栈 在实际发布之前进行更新 在写这篇文章的时候,我在禁用Node脚本并重新启动Coldfusion之后开始了这个工作,这个问题似乎已经消失了。 但是,我仍然想要帮助确定页面为何超时,并确认Node脚本需要connection.end() 也可能只发生在负载,所以我不是100%确定它已经消失 UPDATE 仍然有问题,我刚刚在Fusion Reactor中复制了当前长达70秒的查询中的一个,并在数据库中手动运行它,并在几毫秒内完成。 查询本身似乎不成问题。 另一个更新 其中一个页面的堆栈跟踪仍在进行中。 服务器在一段时间内还没有停止提供页面,所有的Node脚本都被禁用了 http://pastebin.com/D6ycJf3X 更多更新 今天我又多了几个 – 他们真的完成了,我在FusionReactor中发现了这个错误: Error Executing Database Query. The last packet successfully received from the server was 7,200,045 milliseconds ago. The last packet […]
我正在使用CentOS 6并尝试使用以下命令在Apache中调用sudo: exec("sudo -u kouser whoami 2>&1",$output,$code); 但是SElinux添加一行来输出 array(2) { [0]=> string(53) "sudo: unable to send audit message: Permission denied" [1]=> string(61) "kouser" } 当我停止SElinux这条线将隐藏。 tail / var / log / secure Mar 1 10:11:44 ERP-Server sudo: apache : TTY=unknown ; PWD=/var/www/html/test ; USER=kouser ; COMMAND=/usr/bin/whoami Mar 1 10:11:44 ERP-Server sudo: PAM audit_log_acct_message() failed: Permission […]
我有一个简单的Apache2设置与两个VirtualHosts。 一个是“正常”字符的域名,一个是外国字符(带有punycode)。 问题是我不知道如何将“www”添加为punycode域的别名。 与“正常”之一,它工作正常。 这是“正常”的主机: ServerName aev25.no ServerAlias www.aev25.no 我可以使用名称和别名访问正确的站点。 这里是“foreign”/ punycode主机: ServerName xn--hvin-gra.no ServerAlias høvin.no 现在,由于我没有“www”的别名,所以自然不会这样工作。 但是,如果我尝试添加另一个别名,如下所示: ServerName xn--hvin-gra.no ServerAlias høvin.no ServerAlias www.høvin.no 或这个: ServerName xn--hvin-gra.no ServerAlias høvin.no www.høvin.no 它不工作。 它只是打开默认的apache2网站。 所以看来,这不是正确的做法,即使apache2不抱怨。 我也有一个域名aev25.no的设置,其中ServerAlias是www.aev25.no。 这工作正常,这应该表明,这个问题是不相关的www。* .: ServerName aev25.no ServerAlias wwwaev25.no (工作正常) 那么,如何将另一个别名添加到域? 或者我应该以另一种方式做这个? 注意:apache2版本是2.2.22。