我试图设置Tomcat密码保护整个webapp,但是当我得到密码提示时,它不接受我提供给它的用户名/密码(只是不断提示用户/通过),和如果我取消,我得到一个401错误。 任何想法,为什么它不工作? 我目前正在使用MemoryRealm,但也尝试了UserDatabaseRealm,在server.xml中用以下代码replace相应的MemoryRealm领域: <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /> 日志只显示"GET / HTTP/1.1" 401 954 ,并且只有在我取消了authentication提示之后。 以下是我的configuration文件(为简洁起见删除了注释) server.xml中: <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service […]
我正在尝试解决有关使用mod_proxy_ajp连接Apache-HTTPD和Tomcat的问题。 从阅读中我发现问题可能是HTTPD和Tomcat中的工作者数量。 所以我试图在Tomcat中find工作人员的定义,但我找不到任何东西。 是真的吗? Tomcat可以在没有workers.properties文件的情况下工作吗? 我在Tomcat conf中检查了导入,以确保没有不同的文件名但没有find。 我怎样才能find我的Tomcat设置的工人的configuration? 有没有默认? 我试图解决的问题是,在某些情况下,Tomcat停止响应Apache – 在Apache日志中,我看到许多错误,如: (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header ajp_read_header: ajp_ilink_receive failed (120006)APR does not understand this error code: proxy: read response failed from 127.0.0.1:9005 (localhost) 所以我试图找出也许Apache比Tomcat有更多的工人。 我正在使用Apache 2.2.15和Tomcat 7,在Redhat机器上使用mod_proxy_ajp连接。 有任何想法吗?
我有一个Apache反向代理将请求移动到一个Tomcat小程序。 configuration类似于: <VirtualHost 100.100.100.100:80> ProxyPass /AppName/App http://1.1.1.1/AppName/App ProxyPassReverse /AppName/App http://1.1.1.1/AppName/App </VirtualHost> 我还有一个名为summary.html的页面,它存在于1.1.1.1上: http://1.1.1.1/AppName/summary.html 当我直接浏览到它,我没有问题查看它,但是如果我试图通过反向代理到那里,我得到一个空白页。 Wireshark向我展示了一个503,但是这个来自Apache反向代理(IP 100.100.100.100),而不是Tomcat(IP 1.1.1.1)。 我应该添加http://1.1.1.1/AppName/到configuration? 怎么样? 我尝试了,但是我得到了一个空白页面,但是这个在浏览器的URL栏上显示了Tomcat的内部IP,所以,不行。 帮助表示赞赏。 谢谢。 编辑:这是从Wireshark转储: GET /AppName/ HTTP/1.1 Host: 100.100.100.100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Cache-Control: max-age=0 Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.1 404 […]
我需要你的帮助。 我有问题反向代理重写为https: 我有一个露天的应用程序运行在tomcat之上,作为一个前端和一个Apache服务器 – 它的网站启用看起来像这样: <VirtualHost *:80> ServerName alfresco JkMount /* ajp13_worker <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature Off </VirtualHost> 我也有一个反向代理服务器在第二台机器上运行,我希望它重写查询到https。 它的网站启用看起来像这样: <VirtualHost 192.168.251.50:80> ServerName alfresco […]
我有一台运行Apache 2.2(充当负载均衡器)和2台机器(B&C)的networking上运行Windows 7上的Tomcat和Java Web应用程序。 有什么办法可以检查: 如果Web应用程序closures,但Tomcat仍在计算机B上运行,并将请求redirect到计算机C. 这是否与修改Tomcat或Apache 2.2configuration有关? 谢谢。
我有一个网站部署在Apache Web服务器上。 我正在使用Windows安装程序从服务器部署和取消部署此网站。 在卸载期间,我只是从tomcat的webapp目录中删除.war。 现在,当我这样做时,tomcat会自动删除解压war文件时创build的所有文件夹。 但是,删除这些文件夹需要一些时间。 我想知道是否有办法强制tomcat通过与外部工具(如脚本,xml-rpc等)进行通信来立即删除文件夹?
我有一个Apache Tomcat 7服务器。 我有一个相当复杂的Java Servlet应用程序在其上运行,每个POST需要一些MySQL查询。 因此,我需要一个MySQL数据库连接来执行查询。 目前我使用下面的Java代码来创build数据源: //db is for example: jdbc:mysql://127.0.0.1:3306/databasename DataSource ds = new DataSource(initPoolProperties(db, user, pass)); private PoolProperties initPoolProperties(String db, String user, String pass) { PoolProperties defaultPoolProperties = new PoolProperties(); defaultPoolProperties.setUrl(db); defaultPoolProperties.setUsername(user); defaultPoolProperties.setPassword(pass); defaultPoolProperties.setDriverClassName("com.mysql.jdbc.Driver"); // And a long list of properties here … return defaultPoolProperties; } 在我的整个分层Java Servlet应用程序中,我只为每个POST创build一个每个数据库连接的DataSource(通过HTML表单浏览网站)。 在此之后,我使用了几次ds.getConnection()来获得执行一些MySQL查询所需的连接。 每个人似乎都使用JNDI数据源。 这意味着他们在应用程序的context.xml中定义一个标记,并使用JNDI查找来获取数据源,并按照我的方式使用连接。 问题在于我在这里实际上做着同样的事情。 […]
我正在尝试configurationmod_jk,以便http://domain.com/由Apache服务,而http://app.domain.com/由Tomcat提供。 现在,当我去app.domain.com,我可以看到Tomcat的消息,但是我无法访问Tomcatpipe理器 – 有没有什么毛病在我的configuration在Mod JK或者是别的吗? 我在Tomcat Host Manager中成功创build了app.domain.com的虚拟主机。 我也能够为app.domain.com创buildpipe理器(当我为app.domain.com创build虚拟主机时),后来我做了以下更改以configurationmod_jk– vi /usr/local/apache/conf/vhosts.conf 在这个文件中,我将JKMount的指令添加到了与我们的应用程序域JkMount /相对应的VirtualHost元素。 tomcat JkMount / .jsp tomcat JkMount / servlet / tomcat 在/usr/local/apache/conf/httpd.conf join下列— ## #Directives for Mod_JK ## <IfModule mod_jk.c> JkWorkersFile /usr/local/apache/conf/workers.properties JkShmFile /usr/local/apache/mod_jk.shm JkLogFile /usr/local/apache/mod_jk.log JkLogLevel warn JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkOptions +ForwardKeySize +ForwardURIProxy -ForwardDirectories </IfModule> 我还对workers.properties进行了更改,以添加与我上面定义的worker'tomcat'相对应的worker。 我如何解决这个问题? 在进行上述更改之前,我能够访问Tomcat […]
一直坚持了这几天。 尽量提供尽可能多的信息,但请随时索取额外的细节。 我在NAT后面有两个虚拟机,192.168.0.100和192.168.0.102,都运行Ubuntu 11.04 x64。 第一个是映射到外部,是我们的networking服务器,有一个Apache / 2.2.17安装与几个虚拟主机服务静态内容,也有mod_jk负载平衡。 第二个有一个tomcat 7安装几个J2EE REST的web服务,但没有apache – 请求预计将从.100 apache直接传递给.102 tomcat。 我打算编写一个tomcat集群环境。 我的问题:请求到192.168.0.100没有任何问题,但是然后大约需要100秒才能到达.102-那时候apache已经超时了,而tomcat收到的正常处理请求却很正常。 这在使用mod_jk,mod_proxy或mod_ajp_proxy时都会发生。 不知道为什么,因为在任何一台机器中都没有防火墙,所以两者都是可以ping通的 – 更重要的是,有一些NFS共享像魅力一样工作 – 而mod_proxy的经验表明,源自.100的请求正常处理。 另外,为了增加伤害,我们的办公室networking也build立了类似的环境。 一切正常。 唯一的区别? 我们在办公室没有ip翻译,并且通过内部地址做所有事情 – 不知道是否有任何关联。 一些configuration: Apache vhost: <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/ ServerName www.example.com ProxyRequests Off <Proxy *> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all […]
我试图在运行AMI的EC2实例上启动tomcat7,但无法使用公共IP从浏览器访问Web服务。 使用默认的AMI创build一个EC2实例作为图像 创build一个弹性IP并将其与实例关联 安装tomcat7并确保它在inet.d中启动 在安全组中创build了一个快速入门1的条目,并添加了端口8080。 已validation安全组已正确添加到实例中。 validation了tomcat是在端口8080上 无法使用公共DNS名称或IP地址从浏览器访问http服务器。 一些实例的输出如下所示: ec2-user@ip-10-202-49-142 ~$ sudo fuser -n tcp 8080 8080/tcp: 1162 ec2-user@ip-10-202-49-142 ~$ sudo netstat -apn Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1019/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1088/sendmail tcp 0 […]