为了确保Tomcat一直在运行,我写了下面的shell脚本 #!/bin/bash status="$(curl -s http://www.domain.com/check)" if [ "$status" != "OK" ] then /opt/apache-tomcat-8.0.15/bin/startup.sh /usr/sbin/sendmail [email protected] < email.txt fi 并通过添加到crontab */1 * * * * /opt/scripts/check.sh 现在,如果我手动closures服务器,那么我每分钟都会收到一封电子邮件,但由于某种原因,脚本不会启动Tomcat。 但是,如果我手动执行check.sh ,我收到一封电子邮件,Tomcat又开始运行。 关于为什么将脚本添加到crontab的任何想法都不启动Tomcat?
暴露的Apache Tomcatpipe理页面是一个坏主意? 除了暴力破解之外,还有其他的安全风险吗?
我在Tomcat 7的conf/Catalina/localhost中有以下configuration文件: <Context docBase="webapps/solr.war" debug="0" crossContext="true" > <Environment name="solr/home" type="java.lang.String" value="/opt/solr/home" override="true" /> <Environment name="data/dir" type="java.lang.String" value="/var/lib/solr" override="true" /> </Context> 在那里我想分开我的solr.home从data.dir 。 我已经testing了上面的configuration文件,但似乎没有工作。 是否有可能使用这种XMLconfiguration文件? 我已经检查了GitHub ,有一些configuration文件,他们在那里,但我不能让它工作。
我在我的AWS EC2 Linux实例上运行Tomcat 8上的Java webservice(JAX-WS),并且我有一个指向该服务的子域,以便我可以使用URL http://services.example.com/api/myService1调用服务http://services.example.com/api/myService1 。 这是VirtualHostconfiguration: <VirtualHost *:80> ServerName services.example.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/Services/ ProxyPassReverse / http://localhost:8080/Services/ </VirtualHost> 现在我想访问存储在服务器中的一些静态文件(图像)。 我应该在哪里存储它们,我应该如何访问它们? 我尝试将它们存储在/opt/tomcat/webapps/ROOT/example.jpg ,并将它们作为http://services.example.com/example.jpg调用,但它不起作用。
我将JIRA和Nginx与Nginx安装在同一台服务器上,作为反向代理。 从我从各种来源得知,在server.xml文件中,我必须添加一个地址=“127.0.0.1”属性,以便Tomcat不听外部IP。 但是,一旦我添加到我的8080和8443连接器,事情停止工作,即JIRA网站变得无法访问。 浏览器显示连接被拒绝/连接超时错误。 这里是Tomcat的server.xml文件configuration。 <Connector port="8080" address="127.0.0.1" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" acceptCount="100" redirectPort="8443" disableUploadTimeout="true" proxyName=<FQDN> proxyPort="80"/> <Connector port="8443" address="127.0.0.1" SSLEnabled="true" acceptCount="100" clientAuth="false" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" keyAlias=<value> keystoreFile=<jks file> keystorePass=<password> keystoreType="JKS" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" protocol="org.apache.coyote.http11.Http11Protocol" scheme="https" secure="true" sslProtocol="TLS" useBodyEncodingForURI="true"/> 以及启用网站的Nginx服务器configuration链接到站点可用文件夹 – server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name […]
我们有一个应用程序发送消息给用户通过与他们的设备的HTTPS连接访问我们的服务器(Apache Tomcat)。 问题是,这个用户应用程序正在Tomcat服务器中保持连接(或打开)。 为了解决这个问题,我们使用maxThreads="2700"和connectionTimeout="20000" <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="2700" scheme="https" secure="true" keystoreFile="********" keystorePass="*****" clientAuth="false" sslProtocol="TLS" connectionTimeout="20000" ciphers="[lots of ciphers here]"/> 事情是,我们的服务器进入繁忙的状态,我们甚至无法访问pipe理页面。 上次我们可以访问它,pipe理页面的http-nio-8443部分是: "http-nio-8443" Max threads: 2700 Current thread count: 1356 Current thread busy: 1354 Keeped alive sockets count: 1 Max processing time: 46426 ms Processing time: 6766.788 s Request count: 73225 Error count: 1415 Bytes […]
在对我的Tomcat servlet进行故障诊断时,我决定通过编辑/var/apache-tomcat-8.5.5/bin/setenv.sh来启用networkingdebugging,并更改了行export JAVA_OPTS="-Xms512m -Xmx1536m -XX:MaxPermSize=256m" export JAVA_OPTS="-Xms512m -Xmx1536m -XX:MaxPermSize=256m -Djavax.net.debug=all" 。 只要我保存文件,并重新启动Tomcat(通过catalina.sh启动/停止),我发现我不能再通过HTTPS连接到Tomcatpipe理器应用程序( https://10.9.9.236:8443/manager/html/ ) 。 Chrome说: “无法到达此站点”(ERR_CONNECTION_CLOSED) 我完全停止和取消部署我的Web应用程序后,我再现了这种行为。 (现在只安装默认的Tomcatpipe理器应用程序。)所以我知道只有一个Java选项导致HTTPS失败。 为什么要启用debugging打破HTTPS? 以下是catalina.out日志文件中可能的线索: https-jsse-nio-8443-exec-4, fatal error: 80: problem unwrapping net record java.lang.RuntimeException: java.security.NoSuchAlgorithmException: EC AlgorithmParameters not available https-jsse-nio-8443-exec-4, SEND TLSv1.2 ALERT: fatal, description = internal_error https-jsse-nio-8443-exec-4, WRITE: TLSv1.2 Alert, length = 2 28-Sep-2016 14:01:00.576 SEVERE [https-jsse-nio-8443-exec-4] org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun […]
我正在testing我的服务器的Tomcat SSLconfiguration,我正在使用nmap的ssl-enum-ciphers脚本,并且出现以下警告: 低于证书密钥的密钥交换参数 这是什么意思? 我无法find有关此诊断的有意义的信息。 Tomcat server.xml密码: ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA"
我想监视我的Tomcat服务器上的请求处理延迟。 稍后将基于此执行一些警报将是很好的。 我使用%D模式configuration了Tomcat阀门,因此它将logging访问日志文件中处理每个请求的时间。 从这些对数线计算50,90,99个百分点的正确方法是什么? 我已经为基本主机指标(cpu / mem,hdd)configuration了Prometheus和Grafana,但是我不清楚如何正确计算百分位数,并用prometheus / grafana来绘制它们。 想法是检测应用程序hicckups,并在它完全没有响应之前作出反应。 谢谢大家!
这是我的第一个问题: 在同一台服务器上运行的IIS和Tomcat上的SSL,并得到了答案。 谢谢。 我正在将我们的webapps从2个服务器迁移到1个服务器。 这些webapps现在正在通过3个不同的别名访问。 在迁移之后,我将把这3个别名移到这个1服务器。 Web应用程序在IIS(默认端口)和Apache Tomcat 7.x(端口8080)中运行。 一切都很好。 我想介绍一下SSL。 所以我申请了我们公司authentication经理的证书,在申请中,我把名字作为别名之一,而不是服务器名称。 我的问题在这里,如果我能够在IIS和Tomcat上使用相同的证书,即使它是用“A”别名请求的,还是我需要为每个别名应用多个证书?