我有一个服务器,让我头痛。 它拥有几个网站:这些都是基于PHP或基于Java。 我有一个设置,使用Apache2 + suPhp的PHP网站,和apache2 +的mod_proxy + Apache的Tomcat的Java应用程序。 在过去的几个星期里我看到一些奇怪的行为。 有时,我会得到一个单一的httpd进程,达到30-40%cpu,超过70%的内存。 我没有看到任何PHP或Java进程占用额外的资源,所以我(天真地)认为这个问题是不相关的PHP或Java代码。 这些高峰似乎随机发生在随机的时间和随机的时间间隔; 有时每天多次,其他时间整整一周都没有发生。 我注意到的另一个奇怪的事情是,当我手动kill -9正在执行的httpd进程时,另一个httpd进程会在几秒钟内popup,并开始占用大量的内存和CPU。 我可以重复几次,直到它自己停止发生:/ 所以,我其实有几个问题: 有没有人有任何提示,我应该如何追查这种行为的原因? 最终,我想看看是什么样的请求导致这些问题。 我已经看了httpd访问和错误日志,我真的找不到任何不寻常的东西。 我对这类问题的研究并不熟悉,所以即使对您来说看起来非常明显的事情也可以提供帮助。 有没有办法限制一个单一的httpdsubprocess可能消耗的资源量? 或只是简单地杀了它,当它超过了一定的内存量? 与上一个问题相关,我可以configurationoom-daemon在httpd进程上触发更多,而在其他进程上更less? 我问,因为,直到我find一个体面的解决scheme,我想确保它停止杀死我的java进程时,httpd进程再次开始行动。 UPDATE 最近我发现,造成这个烂摊子的请求来自googlebot。 这是消耗所有可用的mem和cpu的进程的lsof输出摘录: httpd 18588 nobody 37u IPv6 96675092 TCP myhost.com:http->crawl-66-249-76-96.googlebot.com:56730 (ESTABLISHED) 我设置了mod_security来logging来自我的<VirtualHost>中googlebots似乎使用的IP范围的所有来自这个规则的请求: SecRule REMOTE_ADDR "@ipMatch 66.249.76.0/24" phase:1,id:1,auditlog,allow 我这样离开了服务器一段时间。 在这段时间内,httpd进程被刺激了好几次,到了OOM守护进程开始查杀进程(httpd,java,甚至现在不时地closuresmysql)的程度。 然后,我提取了所有被googlebot击中的url,并创build了一个curl所有这些url的脚本,希望能够使httpd进程飙升,从而find导致这些问题的请求。 不幸的是,这并没有发生 – 所有的请求都很快返回,而cpu和内存使用情况远不及Googlebot访问服务器时的情况。 所以我认为有两种可能性: 问题是由于特定的HTTP标头。 我的脚本不复制这些,它只是使用普通的curl,没有额外的标题。 导致问题的请求不会被logging。 据我所知,这不应该是这种情况,因为我告诉mod_securitylogging第一阶段,这是在Apache实际上处理请求之前的请求。 有没有人有任何其他的想法? […]
我有多个使用CATALINA_BASE方法设置的Tomcat实例。 我需要为它们中的每一个启用tomcatpipe理器应用程序,并根据用户组来分别保护它们。 我在每个实例的BASE / conf / Catalina / localhost位置下都有一个manager.xml安装程序,指向CATALINA_HOME安装的webapps位置。 这在所有的实例中共享应用程序。 它看起来像web.xml文件是修改基于用户名或组的安全约束的位置。 如何根据我正在使用的实例来定义特定的安全性约束,而不是让所有有效的用户都可以访问所有实例? 我是否需要在所有实例下安装pipe理器应用程序,还是有另一种方法可以使用?
我刚刚在本地Windows 7 PC上使用此处提供的32位/ 64位Windows Service Installer执行了Tomcat 7(apache-tomcat-7.0.30)的全新安装。 但是,当我在服务中手动启动它时,显示以下消息后立即启动并停止: 我注意到,每次我尝试,我在我的tomcat-7-stdout日志中得到以下行: 2012-09-16 18:41:12 Commons Daemon procrun stdout initialized Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object 任何人都知道发生了什么事以及如何解决?
我正在部署在tomcat上的应用程序面临一个奇怪的问题。 Nginx使用在tomcat之前从浏览器访问应用程序。 问题是,我在tomcat上部署了应用程序,然后在conf.d目录下的nginx上设置了虚拟主机。 [我创build的文件是virtual.conf。]下面是我用于相同的内容。 server { listen 81; server_name domain.com; error_log /var/log/nginx/domain-admin-error.log; location / { proxy_pass http://localhost:100; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } 现在的问题是,当我使用rewrite ^(.*) http://$server_name$1 permanent; 在服务器部分,请求被redirect到https://domain.com 。 我能够login到应用程序,并能够访问链接也。 我没有在这个主机文件中使用sslredirect,我不知道为什么会发生这种情况。 现在,当我从服务器部分删除redirect时,我可以访问应用程序:81,并能够login到应用程序,但是当我点击任何应用程序的链接,这将redirect到login页面。 我没有得到应用程序日志或tomcat日志中的任何日志。 如果这是nginx的redirect问题,请帮忙。
admin和manager在Tomcat6中使用的angular色是什么? managerangular色似乎让我访问http://domain.com:8080/manager/html 。 adminangular色给了我哪个页面? 在该文件中, adminangular色的描述非常含糊。 什么是host manager webapp ? <!– The host manager webapp is restricted to users with role "admin" –> <!–<user name="tomcat" password="password" roles="admin" />–> <!– The manager webapp is restricted to users with role "manager" –> <!–<user name="tomcat" password="password" roles="manager" />–>
我们有一个在Tomcat上部署的Java Web应用程序。 我们还设置了Apache和mod_proxy_ajp来将Web请求(端口80/443)路由到Tomcat。 我们想在同一个Apache服务器上部署一个PHP应用程序 – 可能在一个子目录下(/ var / www / ourapp)。 现在我们想在Java应用程序生成的网页中访问和显示来自PHP应用程序的网页。 也计划实施单点login。 例如:来自java的网页有(JQuery Tabs),我们喜欢在一个标签中显示PHP网页,而所有其他的HTML来自Java应用程序。 你可以给一个关于如何继续这个整体图片? 主要是1.我们应该如何安装/设置我们的PHP应用程序在用于路由Web请求到Tomcat的相同的Apache服务器? 即设置子域或安装在子目录2.如何将PHP页面带入当前网页(由Java生成)。 我们可以使用AJAX请求还是应该使用Java PHP Bridge / Querces这样的应用程序? 预先感谢您的时间。 问候。
我试图find这个,但没有运气。 我创build了一个JKS密钥库并生成了一个CSR,然后导入了签名的证书和中间和根CA证书。 在Tomcat上使用这个密钥存储没有问题。 现在我想在同一台机器上使用同一个Apache2 http服务器的证书。 我实际上想设置mod_jk来将/*.jsp和servletspathredirect到Tomcat,并从Apache2提供静态内容和PHP。 我试图用keytool将JKS转换为PKCS12,然后用openssl用下面的命令处理: keytool -importkeystore -srckeystore foo.jks \ -destkeystore foo.p12 \ -srcstoretype jks \ -deststoretype pkcs12 问题是只有证书被导出,而不是连锁的其余部分。 我实际上在Apache上使用这个密钥库,它抱怨密钥和证书不匹配(不知道它是否与链有关)。 任何人都可以指向正确的方向吗? 我不是一个服务器的家伙,我有点失落,所有这些东西:-(
我刚刚在Ubuntu上使用apt-get和CentO使用yum安装了tomcat6。 当我访问www.domain.com:8080 ,我得到2个不同的页面。 不是说,如果只是视觉效果,它真的很重要,但是我错过了导致这种差异的包装或设置吗? CentOS的 Ubuntu的
我正在ec2实例中运行一个部署在tomcat中的servlet。 servlet必须在webapps目录中创build一个文件夹。 但是这并不是创build的,但是我可以在webapps中使用mkdir命令创build文件夹。 什么是tomcat / servlet的用户? 我应该pipe理任何权限设置? 我也无法看到servletdebugging控制台,我在哪里可以看到这一点。
我可以以ec2用户身份运行tomcat吗? 问题是:我需要rsync 2 ec2实例之间的webapps文件夹的一些子文件夹。 rsync适用于“ec2-user”拥有的所有文件夹,但对于webapps子文件夹(其所有者为“tomcat”),rsync会因拒绝权限而失败。 有什么build议吗?