我有一个运行在Server 2008 R2机器上的网站,我想限制一个特定的jsp页面访问到一个IP地址。 在Tomcat的context.xml文件中,我想出了如何使用RemoteAddr Valve来限制对目录的访问,但我无法弄清楚如何为单个文件执行此操作。 这甚至有可能吗?
我有一个Ubuntu 12.04服务器上的Tomcat 6服务器与4GB和以下JAVA_OPTS JAVA_OPTS =“ – Djava.awt.headless = true -Xms512M -Xmx512M -XX:PermSize = 1024M -XX:MaxPermSize = 1024M -XX:+ CMSClassUnloadingEnabled -XX:+ CMSPermGenSweepingEnabled” 愚蠢的问题:如果我部署相同的Web应用程序(相同的战争文件)几次(每个引用不同的Postgres数据库) – 作为server.com:8080/webapp1 server.com:8080/webapp2等… 我可以假设Tomcat会在多个webapps上caching类文件吗? 或者 – 每个Web应用程序Tomcatcaching类? 在此先感谢丹尼
我成功地使用SSLconfiguration了tomcat,并使用了自签名证书。 最近出现了一个问题,就是让客户“接受/信任”我们的证书并不容易。 我们最终为该服务器购买了verisigin证书。 我已将新证书添加到密钥存储区的证书中。 我更新了tomcat的server.xml文件以使用别名来获取新的证书。 我已经重新启动了Tomcat和服务器。 每次我连接到服务器,我得到旧的证书。 Enviornment: Windows 2008 R2 – 64位 Tomcat 6.0.29 – 作为服务安装 Java 1.6.0_23 来自server.xml的 连接器 : <Connector port="443" maxThreads="150" scheme="https" secure="true" SSLEnabled="true" keystoreFile="keystore.keys" keyalias="webapps2013" keystorePass="Redacted" clientAuth="false" sslProtocol="TLS" protocol="HTTP/1.1" /> 我甚至尝试改变密钥存储,通过将旧证书移动到不同的别名,并添加我的新的证书,旧的别名是什么。 我已经从多个浏览器和工作站尝试过了。 (清除我的caching。) 那么我需要做些什么才能让tomcat获取并提供新的证书? 更新: 在其中一个评论的build议之后清除tomcatscaching。 我停止了tomcat,删除了$ {CATALINA_HOME} / work并重新启动了tomcat。 它仍然在服务旧的证书。 更新2: 我查看了jakarta_service_date.log catalina.date.log manager.date.log stdout.date.log和stderr.date.log我没有看到任何证书错误。 虽然我正在看到会话序列化的一个奇怪的错误。 Dec 11, 2013 […]
我有一个tomcar服务器上的几个应用程序。 我正在使用nginx的代理,所以我可以实现从子域的应用程序join tomat:8080/app1 > app1.mydomain.com tomat:8080/app2 > app2.mydomain.com 我build立了一个反向代理: server { listen 80; server_name app1.mydomain.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_pass http://tomcat:8080/app1/; } } 我可以访问应用程序没有问题。 但是无法保持会话。 我在docker上有另一个应用程序,在ngix后面运行没有问题。 另外,如果我直接访问应用程序,我可以操作它没有问题。 任何提示? 谢谢。
我正在使用Tomcat 6运行Apache Solr的一个实例。我用于安assembly置的Tomcat来logging“所有”的脚本,这意味着它会生成巨大的日志文件,因为每个查询等都被logging下来。 日益增长的日志文件是“catalina.out”。 我试图通过在logging.properties更改这些行来将日志logging级别设置为WARNING 1catalina.org.apache.juli.FileHandler.level = INFO 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 至 1catalina.org.apache.juli.FileHandler.level = WARNING 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 重新启动Tomcat后,我的日志仍然包含大部分的INFO消息。 接下来我尝试的是取消注释一个设置catalina日志logging级别的示例configuration,警告: # For example, to log debug messages in ContextConfig and HostConfig # classes and to log only warnings and errors in other # org.apache.catalina.** classes, uncomment these lines: org.apache.catalina.level […]
我正在努力configurationTomcat集群中的会话复制。 Ramki关于Tomcat Clustering 的文章对我有很大的帮助。 负载平衡和粘性会话运作良好。 会话ID被复制,但只有ID。 会话属性不是,它们只在主节点上改变。 完整会话的Apache部落复制丢失。 我的环境:Oracle Linux 6.6,Tomcat 8.0.20,JRE 7u55-b13 Apache httpd.conf LoadModule jk_module modules/mod_jk.so JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log JkLogLevel emerg JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" JkMount /status stat JkMount /* balancer JkMount /uzel1* uzel1 JkMount /uzel2* uzel2 JkMount /uzel3* uzel3 workers.properties […]
我有一个Tomcat的日志目录中有很多的日志文件。 我想确定哪个JVM运行这个Tomcat。 我在日志中找不到任何东西,我甚至不知道是否可以从日志中获取这些信息。 有谁知道这个信息是否可用?
我想要做的是设置一个重写规则,这样当一个URL被input时,它将显示为example.com/test 。 所以举个例子,我试图做到这一点,如果这是可能的。 我已经将site.example.com的CNAME设置为指向site.devexample.com (开发商的远程环境) 如果用户访问site.example.com则URL将重新写入这些行example.com/test 。 我到目前为止,但似乎没有工作,当我访问site.example.com它保持原样。 # rewrite rules for site.example.com RewriteCond %{http_host} ^site\.example\.com [NC,OR] RewriteCond %{http_host} ^www\.site\.example\.com [NC] RewriteRule $ http://example.com/test/ [R,L] 我需要做一个反向代理,然后从那里重新写? 编辑:我道歉,我应该更好一点解释。 site.example.com由test.com(A公司)拥有。 因此,我们将CNAME更改为指向site.devEnvironment.com(companyB.com) 而test.com/test是我们的服务器和目录,试图重写URL为test.com/test而不是site.example.com 我们的redirect在httpd.conf文件中设置,不知道这是否也有帮助
我的问题与此类似: Tomcat无法在密钥库中find密钥条目 我有一个CER文件,我使用下面的命令导入到JKS中: keytool -importcert -file codesign_Base64.cer -keystore imported_keystore.jks -alias my_alias 然后,我在jBoss的standalone.xml中有下面的configuration行。 <subsystem xmlns="urn:jboss:domain:web:1.1" native="false" default-virtual-server="default-host"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" redirect-port="8443"/> <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" enable-lookups="false" secure="true"> <ssl name="ssl" key-alias="my_alias " password="change_this" certificate-key-file="C:\Programs\Siemens\JBoss7.1.0\domain\configuration\imported_keystore.jks " protocol="TLSv1" verify-client="false"/> </connector> <virtual-server name="default-host" enable-welcome-root="false"> <alias name="localhost"/> <alias name="example.com"/> </virtual-server> </subsystem> 有了这个,当我尝试启动应用程序时,在jBoss日志文件中看到以下错误消息,描述了这种错误。 11:46:19,692 ERROR [org.apache.coyote.http11.Http11Protocol] (MSC service thread […]
我尝试了几种不同的方法,例如Tomcat在运行我的Web应用程序时加载MySQL驱动程序。 我正在使用Ubuntu 8.04,这些库来自libmysql–java软件包。 他们位于如下所示的目录中: 〜$ ls / usr / share / java / mysql * /usr/share/java/mysql-connector-java-5.1.5.jar 我的CLASSPATH包含这个文件: 〜$ echo $ CLASSPATH 。:/ usr / lib中/ JVM / JAVA-6-太阳/斌:/usr/local/tomcat/lib/servlet-api.jar:/usr/share/java/mysql-connector-java-5.1.5.jar 我甚至把我的WEB-INF / lib /目录中的.jar文件拷贝到我的web应用程序中: / usr / local / tomcat / webapps / ohms / WEB-INF / lib $ ls MySQL的连接器的Java-5.1.5.jar 完成这些更改后,我重新启动Tomcat,重新编译我的类,重新启动Tomcat。 另外,我正在使用import java.sql.*;导入必要的库import java.sql.*; 但是,我仍然得到java.lang.ClassNotFoundException: com.mysql.jdbc.Driver错误,当它运行行Class.forName("com.mysql.jdbc.Driver").newInstance(); […]