Articles of tomcat

如何让Windows Server在IIS服务之后启动我的Apache服务?

我有Windows Server 2k3上的Apache和IIS。 使用Apache Tomcatredirect器通过IIS进行隧道访问Apache服务器 一切正常,直到我重新启动。 当我显然在World Wide Web Publishing(W3SVC)服务之前启动Apache Tomcat 6服务时。 手动停止并重新启动Apache Tomcat服务可以解决问题,但是我不希望每次重新启动时都要手动继续。 如何让Windows在IIS之后启动Apache?

暴发户脚本与命令行:为什么这种行为差异?

我试图设置Tomcat,以暴发户开始。 我发现以下工作: description "Tomcat Server" start on runlevel [2345] stop on runlevel [!2345] respawn respawn limit 10 5 setuid tomcat env JAVA_HOME=/usr/lib/jvm/default-java env CATALINA_HOME=/opt/apache-tomcat-7.0.34 script chdir $CATALINA_HOME exec $CATALINA_HOME/bin/catalina.sh run end script 但是,如果我删除了chdir ,tomcat就会启动,但是当我的.wars加载时有大量的FileNotFoundexception。 (即: .wars本身会加载,但是会在加载时抛出exception。) 请注意,这种行为与我从命令行调用catalina.sh时看到的行为不同 。 从命令行调用,我可以运行/opt/apache-tomcat-7.0.34/bin/catalina.sh run 从任何目录 (没有chdiring),一切都很好。 那么为什么我的新贵脚本中需要chdir ? (新兴的环境与我的命令行环境有什么不同?) 当我不chdir时,我看到的错误的例子w /暴发户: Feb 22, 2013 3:00:11 AM org.apache.catalina.startup.HostConfig deployWAR INFO: […]

Keytool ServerAlternateName

我试图让我们的Jira / Confluence部署在内部正确的证书。 人们以不同的方式访问它们,无论是从主机名还是FQDN。 我正在使用Java 7的keytool,所以我可以访问服务器备用名称function: -ext san=dns:jira 我递给他… jira.example.com 作为CN生成证书时。 然后我生成一个签名请求,将CSR交给我们的Win2k8r2 PKI以获得certreq以获得密钥签名并将密钥导回到密钥存储区。 现在,当我在浏览器(Chrome,Firefox,Safari)上面提到的设置时,似乎认为jira是唯一有效的名称,即使在我检查证书时CN也显示FQDN。 如果我删除了ext ,它将使用CN是FQDN。 当我有多个ext语句时,它只是使用最后一个,我试图在一个ext条目下连同多个标点符号串起多个DNS:foo 。 另一个angular度是我设置networking服务器做一个301到FQDN。 我也很好,但是我坚持使用Tomcat,所以“切换到Apache / Nginx”不适用于我。 这似乎是我遇到过的唯一一个用Tomcat做这种事情的文档,但它已经3岁了,对我来说这是一天的结束。 他们有没有添加到Tomcat6的function?

如何findTomcat当前的线程数

在我的Linux服务器上,我以root身份运行tomcat,当我运行ps aux它提供以下输出。 root 25667 0.1 29.2 4574004 306980 ? Sl Apr27 33:57 /usr/local/java/bin/java -Djava.util.logging.config.file… 这只是父进程,但是当我运行htop我可以看到所有其他subprocess(哪些是线程?)。 下面给出几行的示例输出。 PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 25668 root 15 0 4466M 299M 14208 S 0.0 29.3 0:01.23 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t 25669 root 18 0 4466M 299M 14208 S 0.0 29.3 0:54.84 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t 25670 […]

在tomcat强制http连接到https

我试图强制连接到http://localhost:8443到https://localhost:8443 。 如果他们转到https://localhost:8443则该网站正常工作。 如果用户忘记在https我想要tomcat纠正它。 我只有一个https连接器,定义如下: <Connector port="8443" rediretPort="8443" protocol="HTTP/1.1" connectionTimeout="20000" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keyAlias="alias" keystoreFile="keystore.jks" keypass="PASSWORD" /> 这是在Windows服务器上。 Tomcat 6是一个独立的服务器(不连接到IIS)。 我试图修改web.xml以包含以下内容: <security-constraint> <web-resource-collection> <web-resource-name>Protected Context</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> 这对我不起作用。 从我读过的,这将redirect一个用户从http://localhost:8080到https://localhost:8443 (如果连接器8080定义redirectPort为8443)。 我不确定这是甚至可以使用独立的Tomcat服务器。 我知道这是可能的与Apache的mod_rewrite或一些其他类似的解决scheme,但我不想在Windows机器上安装任何其他服务。

Tomcat mod_jk群集跳过404 http状态

我正在尝试使用mod_jk Tomcat Clustering几个月,到目前为止没有那么糟糕,但在部署期间面临一个问题。 我正在使用FarmDeployer将WAR复制并部署到集群中的其他节点,但大部分时间WAR未正确部署,从而使页面出现404错误。 即使在删除爆炸的战争目录并再次使用tomcat提取WAR之后,浏览器仍然无法渲染实际的站点,直到我重新启动/停止该特定节点上的tomcat服务(当然, http:// node-ip / myapp工作如果重新部署的战争,而不是http://site1.mydomain.net一次呈现404页)。 而且我认为这个问题是与浏览器相关的(尝试所有的浏览器),当在404错误之后重新部署时在其他计算机上呈现的页面。 我也尝试fail_on_status ,所以它把节点错误阶段,曾经呈现404 HTTP状态,并redirect到其他节点,但在我的testing,我发现它完全把这些节点错误状态,没有请求发送到这些节点,直到重新启动他们正在回来工作。 负载平衡器上的Workers.properties: workers.tomcat_home=/usr/share/tomcat workers.java_home=/usr/lib/jvm/java-6-openjdk ps=/ worker.list=cluster,balancer1,status worker.balancer1.port=8009 worker.balancer1.host=localhost worker.balancer1.type=ajp13 worker.balancer1.lbfactor=2 worker.balancer1.cache_timeout=20 worker.balancer1.socket_timeout=20 #worker.balancer1.fail_on_status=-404,-503 worker.web1.port=8009 worker.web1.host=192.168.1.8 worker.web1.type=ajp13 worker.web1.lbfactor=4 worker.web1.redirect=web2 worker.web1.cache_timeout=20 worker.web1.socket_timeout=20 #worker.web1.fail_on_status=-404,-503 worker.web2.port=8009 worker.web2.host=192.168.1.9 worker.web2.type=ajp13 worker.web2.lbfactor=4 worker.web2.redirect=web1 worker.web2.cache_timeout=20 worker.web2.socket_timeout=20 #worker.web2.fail_on_status=-404,503 worker.cluster.type=lb worker.cluster.balance_workers=web1,web2,balancer1 worker.cluster.sticky_session=True worker.cluster.sticky_session_force=False # Status worker for managing load balancer worker.status.type=status 任何人有任何想法跳过404错误节点,而不是打其他正确部署的节点? 至less在configuration中有任何提示,以便在面对启用了stickey […]

xinetd后面的tomcat6 – 真正的客户端ip

在server.xml ,在Connector我指定proxyPort为80 。 这是xinetd服务: service http { socket_type = stream protocol = tcp user = tomcat6 wait = no bind = 0.0.0.0 port = 80 redirect = 127.0.0.1 8080 disable = no flags = REUSE log_type = FILE /var/log/xinetd_http_access.log log_on_success -= PID HOST DURATION EXIT per_source = UNLIMITED instances = UNLIMITED } 不过,在Tomcat的访问日志中,我看到如下行: 127.0.0.1 – […]

configurationnginx为tomcat / uWSGI代理

我正在为java和django开发configuration一台amazon EC2机器。 我们select的栈是nginx作为80端口上的顶级监听器,并将请求传递给相应的应用程序,thro:8080代表tomcat,thro代表uWSGI的.sock。 我有nginxconfiguration如下: server { listen 80; server_name test.myproject.com; rewrite ^/(.*)$ /myproject/$1; location / { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name test.myotherproject.com; rewrite ^/(.*)$ /myotherproject/$1; location / { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name web1.myhost.com.br; location […]

Tomcap APR本地库

我有一个Solaris 10的框,我成功地从源代码构build了tomcat本地库,其中包括apr-1.5.2.tar.gz,openssl-1.0.2a.tar.gz和tomcat-native-1.1.33-src名为.tar.gz。 然后,我可以启动我的Tomcat服务器,并获得一系列日志语句,指出Tomcat服务器确实正在使用本地库,如下所示。 2015年6月9日下午4时07分07秒org.apache.catalina.core.AprLifecycleListener初始信息:加载基于APR的Apache Tomcat本机库1.1.33使用APR版本1.5.2。 2015年6月9日下午4时07分08秒org.apache.catalina.core.AprLifecycleListener init INFO:APRfunction:IPv6 [true],sendfile [true],接受filter[false],random [true]。 2015年6月9日4:07:09 org.apache.catalina.core.AprLifecycleListener initializeSSL INFO:OpenSSL成功初始化版本OpenSSL 1.0.2a 2015年3月19日 2015年6月9日4:7:10 PM org.apache.coyote.http11.Http11AprProtocol init 那么我的问题是什么? 那么,我现在必须在其他11个Solaris机器上部署tomcat本地库。 我宁愿不更多地构build代码11,因为这非常耗时。 我不是一个unix人,所以也许有人可以解释为什么以下不起作用。 我只是将所有工作的Solaris库复制到新的Solaris机器上的一个文件夹,保持相同的权限rwxr-xr-x,如下所示: apr.exp 9,278 libapr-1.a 968,936 libapr-1.la 976 libapr-1.so 641,972 libapr-1.so.0 641,972 libapr-1.so.0.5.2 641,972 libcrypto.a 3,152,616 libssl.a 591,140 libtcnative-1.a 1,054,352 libtcnative-1.la 1,206 libtcnative-1.lai 1,177 libtcnative-1.so 922,176 libtcnative-1.so.0 922,176 libtcnative-1.so.0.1.33 922,176 在新的Solaris机器上,我编辑了我的tomcat […]

Nginx:从caching的内容中删除cookie

试图用Nginx代替Apache作为一些Tomcat服务器之前的Web代理,处理Set-Cookie JSESSIONID被certificate是具有挑战性的。 我们的Tomcat内容由Cache-Control和Set-Cookie提供。 在Apache中,我们可以通过使用CacheIgnoreHeaders Set-Cookie来完全caching基于Cache-Control的caching…这里是重要的部分:caching的内容没有Set-Cookie,所以我们避免会话泄漏。 但是在Nginx中, proxy_ignore_headers Set-Cookie将回proxy_ignore_headers Set-Cookie Cache-Control来决定是否caching一个页面…但是caching的内容随后被提供给JSESSIONID。 添加proxy_hide_header Set-Cookie从所有提供的内容中删除JSESSIONID,caching与否,意味着整个站点变为无状态。