我将nginxconfiguration为Tomcat 7之前的反向代理。我将以下几行添加到了nginxconfiguration中: set_real_ip_from 127.0.0.1; … location / { proxy_pass http://tomcat; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 但是,我仍然在Tomcat中看到以下图片: 127.0.0.1 – – [10/Jun/2013:11:25:48 +0600] "GET /app/welcome;jsessionid=6C1B02376C5F748C509B28FC7CE416C9 HTTP/1.0" 200 10571 127.0.0.1 – – [10/Jun/2013:11:25:48 +0600] "GET /app/welcome;jsessionid=0BBE0174C1F0E94FDF49610144E809D3 HTTP/1.0" 200 10571 127.0.0.1 – – [10/Jun/2013:11:25:48 +0600] "GET /app/welcome;jsessionid=AD48005AD453F3A0BE46F1AC978F145D HTTP/1.0" 200 10571 有没有办法强制Tomcat使用X-Real-IP头(并将其写入日志文件), 而无需修改 Web应用程序?
免责声明:我不是一个服务器pipe理员,我是一个Windows用户,导致了有罪恶的安装向导和拖放的生活 我试图在由MediaTemple专用虚拟服务器托pipe的CentOS 5上安装Tomcat。 我基本上遵循这个指南 : 安装jpackage并configurationyum.repo.d jpackage文件来设置enabled = 1 用yum来安装java(yum install java) 用“wget http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.14.tar.gz ”下载了tomcat的二进制发行版 将JAVA_HOME设置为指向我在“export JAVA_HOME = / usr / lib / jvm / java-1.6.0-openjdk-1.6.0.0 /”中find的jdk位置 我gunzip /解开Tomcat文件并运行./startup.sh来启动Tomcat服务器。 这应该把Tomcat服务器放在myserver.com:8080–但是,当我尝试浏览到它时(或者当我尝试从SSH中“curl localhost:8080”),我只是得到一个无法联系到主机错误。 ./startup.sh,这里是控制台输出: [root @ myserver bin]#./startup.sh Using CATALINA_BASE: /root/apache-tomcat-6.0.14 Using CATALINA_HOME: /root/apache-tomcat-6.0.14 Using CATALINA_TMPDIR: /root/apache-tomcat-6.0.14/temp Using JRE_HOME: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/ [root@myserver bin]# 我在这里错过了一个步骤吗? 编辑:我现在通过查看日志中发现以下错误发生: VM初始化期间发生错误无法为对象堆预留足够的空间
最近两天我们的Tomcat 5.5基于Linux的networking服务器已经在几分钟之内被分解,开始数千次下载并停止它们。 访问日志中的一些请求path以类似“?jfkdsjkfsdk”的部分结束。 Tomcat系统是否存在这种攻击的已知漏洞? 更新:我们目前正在运行纯粹的Tomcat,没有Apache。
我在Amazon EC2上的服务器上运行的Tomcat 7进程在CATALINA_OPTS具有这些设置,这些设置应该允许我远程连接以进行JMX监视: -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 但是, 远程连接不能与jconsole或jvisualvm一起使用 。 它只是超时。 我三重检查了EC2安全组允许从我的IP(并且只能从我的IP)访问JMX远程端口。 有没有设置缺失?
我有一个设置,在我的Tomcat实例前面用Apache服务器与mod-proxy。 我需要在反向代理服务器端提供静态内容,以防身份validationclosures我的应用程序会话(沉重的AJAX应用程序)。 这个想法是浏览器正在请求一些静态内容,例如: http://myreverseproxy.com/app/sc/skins/Enterprise/images/SectionHeader/opener_closed.png Apache将请求转发给Tomcat谁将为图像服务。 我需要它由Apache服务,这可能吗? 谢谢!
我刚开始使用CentOS。 我安装Java yum install java-1.7.0-openjdk-devel 添加了一个用户: $useradd supersite 已下载的tomcat: $wget http://apache.mirror.anlx.net/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42.zip $unzip apache-tomcat-7.0.42.zip -d tomcat7 创build服务configuration: $ cd /etc/init.d $ edit tomcat7-supersite 我从这里复制文件。 但是,当我尝试以root用户身份运行(我看到我是root @ myip) service tomcat7-supersite start 我得到: env: /etc/init.d/tomcat7-supersite: Permission denied 为什么?
我有一个架构问题。 在集群Web应用程序环境中,我可以想到三种处理后台作业的方法: 有专门的机器运行所有的工作,从而释放Web服务器不必这样做 让每个Web服务器也运行后台作业,使用一种机制来确保没有两台机器启动相同的工作 有一个networking服务器加倍作为就业跑步者 什么是首选方法?
我正在Tomcat服务器上安装SSL证书,但是无法在密钥库文件中find密钥条目。 如果我不指定keyAlias="mykey"它会显示以下错误消息: javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled. 正如我在Tomcat文档http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html#Troubleshooting上看到的,它告诉我指定keyAlias 。 但是,当我这样做时,我收到以下错误信息: java.io.IOException: Alias name mykey does not identify a key entry 如果我keytool -list -keystore .keystore -v ,我会得到三个关键条目,其中两个来自cert公司和最后一个: Alias name: mykey Creation date: Dec 17, 2011 Entry type: trustedCertEntry 也就是说,键入是在那里,但Tomcat找不到它。 将keystoreFile更正设置为密钥库文件。 它可能是什么?
我曾就ITSecurity问过这个问题,但我觉得这个问题最好放在这里。 在最近的一次评估中,我发现向tomcat服务器发送大型(> 5 MB)请求会导致服务器上100%的CPU使用率。 想到的最简单的修复方法是在连接器上使用maxPostSize。 但是这并没有帮助,因为我需要发送的请求不是“form-url-encoded”。 我四处阅读,发现maxPostSize只适用于该标题。 那么,在传递给应用程序之前,在服务器上停止这种大数据包的替代方法是什么呢? 换句话说:如何防止发送多个大型数据请求的攻击者在Tomcat服务器上执行DoS
我有一个Web应用程序部署在一个Web应用程序webapps/appname应用程序名称,我试图将重写规则添加到example.org/appname-slow重写为example.org/appname?delay=1 。 我在webapps/ROOT/WEB-INF/web.xml <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> <init-param> <param-name>confReloadCheckInterval</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>statusEnabledOnHosts</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>logLevel</param-name> <param-value>sysout:DEBUG</param-value> </init-param> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> 以及在webapps/ROOT/WEB-INF/urlrewrite.xml : <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd"> <urlrewrite use-context="true"> <rule match-type="regex"> <from>^/appname-slow/(.*)$</from> <to type="forward" qsappend="true">/appname/$1?delay=1</to> </rule> </urlrewrite> 但是当我去到新的url,我得到: HTTP Status 404 – /appname/ type Status […]