Java 来自不同机器的Apache 2.2到Tomcat虚拟主机不工作

Java 来自不同机器的Apache 2.2到Tomcat虚拟主机不工作,java,tomcat7,virtualhost,apache2.2,Java,Tomcat7,Virtualhost,Apache2.2,我有一个场景,所有对Tomcat服务器(应用服务器)的请求都应该通过Apache2.2(Web服务器)进行。 两台服务器应位于两台不同的计算机上。 由于安全原因,这两台计算机不在同一域或网络上 我必须使用下面这样的虚拟主机设置,因为这已经被我公司的其他开发人员使用过,并且经过了充分测试,运行良好 <VirtualHost *:*> #Full Computer Name with port if its not 80 ServerName Full_Name

我有一个场景,所有对Tomcat服务器(应用服务器)的请求都应该通过Apache2.2(Web服务器)进行。 两台服务器应位于两台不同的计算机上。 由于安全原因,这两台计算机不在同一域或网络上

我必须使用下面这样的虚拟主机设置,因为这已经被我公司的其他开发人员使用过,并且经过了充分测试,运行良好

 <VirtualHost *:*>
      #Full Computer Name with port if its not 80
      ServerName Full_Name_OF_Computer
      ServerAlias Full_Name_OF_Computer

      LogFormat "%h %l %u %t \"%r\" %s %b %D" app
      CustomLog logs/app-access.log app

      SSLProxyEngine On

      RewriteEngine on
      RewriteLogLevel 5
      RewriteLog logs/rewrite.log

      # Root URL handling
      RewriteRule ^\/app\/?$ /app/launch.jsp [R,L]
      RewriteRule ^\/app\/?$ ajp://Full_Name_OF_Computer:8009/app [P,L]

      # Dynamic content
      RewriteRule ^/app/(.+\.(?:jsp|do|rpc).*)$ ajp://Full_Name_OF_Computer:8009/app/$1 [P,L]

      # This must be the location where application is deployed
      # SHOULD THIS BE THE LOCATION WITH IN THE APPLICATION SEVER OR THE LOCATION PATH TO THE APPLICATION SERVER FROM WEB SERVER??
      Alias /app "D:\apache-tomcat-7.0.63\webapps\app"
      <Directory "D:\apache-tomcat-7.0.63\webapps\app">
          Options FollowSymLinks
          AllowOverride None
          Allow from all

          ExpiresActive on
          ExpiresDefault "access plus 2 months"
          ExpiresByType application/x-javascript  "access plus 2 months"
          ExpiresByType application/javascript  "access plus 2 months"
          ExpiresByType text/javascript  "access plus 2 months"
          ExpiresByType text/css  "access plus 2 months"
          ExpiresByType image/gif "access plus 2 months"
          ExpiresByType image/jpeg "access plus 2 months"
          ExpiresByType image/png "access plus 2 months"
          ExpiresByType image/x-icon "access plus 2 months"

          AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript text/json application/x-javascript
      </Directory>
  </VirtualHost>
重写.log

10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (2) init rewrite engine with requested uri /app/launch.jsp
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (3) applying pattern '^\\/app\\/?$' to uri '/app/launch.jsp'
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (3) applying pattern '^\\/app\\/?$' to uri '/app/launch.jsp'
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (3) applying pattern '^/app/(.+\\.(?:jsp|do|rpc).*)$' to uri '/app/launch.jsp'
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (2) rewrite '/app/launch.jsp' -> 'ajp://ApplicationServerFullName:8009/app/launch.jsp'
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (2) forcing proxy-throughput with ajp://ApplicationServerFullName:8009/app/launch.jsp
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (1) go-ahead with proxy request proxy:ajp://ApplicationServerFullName:8009/app/launch.jsp [OK]
Access.log

10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] "GET /app/launch.jsp HTTP/1.1" 503 323 0
有人能帮我解决这个问题吗?因为我的时间不多了,我已经在网上找了很多类似的问题,但我找不到任何解决方案


事先非常感谢。

你确定tomcat不仅要听127.0.0.1吗?Sibnick,谢谢你的评论。我不明白你的问题。如果您的意思是tomcat是否可以从其他计算机访问,那么答案是肯定的。我可以通过8080端口从另一台计算机访问应用程序,但不能通过Apache。这个问题应该转移到ServerFault上。多谢了,在Server Fault上创建了相同的问题。该错误是由于tomcat的AJP端口无法从外部访问。打开端口后,我只需将静态内容放在Apache托管的服务器上,这样就不需要在Web服务器上映射网络路径。您确定tomcat不仅侦听127.0.0.1吗?Sibnick,感谢您的评论。我不明白你的问题。如果您的意思是tomcat是否可以从其他计算机访问,那么答案是肯定的。我可以通过8080端口从另一台计算机访问应用程序,但不能通过Apache。这个问题应该转移到ServerFault上。多谢了,在Server Fault上创建了相同的问题。该错误是由于tomcat的AJP端口无法从外部访问。打开端口后,我只需将静态内容放在Apache托管的服务器上,这样就不需要在Web服务器上映射网络路径。
[Fri Aug 14 18:27:07 2015] [debug] mod_proxy_ajp.c(45): proxy: AJP: canonicalising URL //ApplicationServerFullName:8009/app/launch.jsp
[Fri Aug 14 18:27:07 2015] [debug] proxy_util.c(1532): [client 10.16.1.3] proxy: *: found reverse proxy worker for ajp://ApplicationServerFullName:8009/app/launch.jsp
[Fri Aug 14 18:27:07 2015] [debug] mod_proxy.c(1036): Running scheme ajp handler (attempt 0)
[Fri Aug 14 18:27:07 2015] [debug] mod_proxy_ajp.c(726): proxy: AJP: serving URL ajp://ApplicationServerFullName:8009/app/launch.jsp
[Fri Aug 14 18:27:07 2015] [debug] proxy_util.c(2018): proxy: AJP: has acquired connection for (*)
[Fri Aug 14 18:27:07 2015] [debug] proxy_util.c(2074): proxy: connecting ajp://ApplicationServerFullName:8009/app/launch.jsp to ApplicationServerFullName:8009
[Fri Aug 14 18:27:07 2015] [debug] proxy_util.c(2200): proxy: connected /app/launch.jsp to ApplicationServerFullName:8009
[Fri Aug 14 18:27:07 2015] [debug] proxy_util.c(2451): proxy: AJP: fam 2 socket created to connect to *
[Fri Aug 14 18:27:07 2015] [debug] ajp_header.c(224): Into ajp_marshal_into_msgb
[Fri Aug 14 18:27:07 2015] [debug] ajp_header.c(290): ajp_marshal_into_msgb: Header[0] [Accept] = [text/html, application/xhtml+xml, */*]
[Fri Aug 14 18:27:07 2015] [debug] ajp_header.c(290): ajp_marshal_into_msgb: Header[1] [Accept-Language] = [nl-NL]
[Fri Aug 14 18:27:07 2015] [debug] ajp_header.c(290): ajp_marshal_into_msgb: Header[2] [User-Agent] = [Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko]
[Fri Aug 14 18:27:07 2015] [debug] ajp_header.c(290): ajp_marshal_into_msgb: Header[3] [Accept-Encoding] = [gzip, deflate]
[Fri Aug 14 18:27:07 2015] [debug] ajp_header.c(290): ajp_marshal_into_msgb: Header[4] [Host] = [Web_Server_Ful_Name]
[Fri Aug 14 18:27:07 2015] [debug] ajp_header.c(290): ajp_marshal_into_msgb: Header[5] [Connection] = [Keep-Alive]
[Fri Aug 14 18:27:07 2015] [debug] ajp_header.c(461): ajp_marshal_into_msgb: Done
[Fri Aug 14 18:27:07 2015] [debug] mod_proxy_ajp.c(270): proxy: APR_BUCKET_IS_EOS
[Fri Aug 14 18:27:07 2015] [debug] mod_proxy_ajp.c(275): proxy: data to read (max 8186 at 4)
[Fri Aug 14 18:27:07 2015] [debug] mod_proxy_ajp.c(290): proxy: got 0 bytes of data
[Fri Aug 14 18:27:07 2015] [error] (OS 10054)An existing connection was forcibly closed by the remote host.  : ajp_ilink_receive() can't receive header
[Fri Aug 14 18:27:07 2015] [error] ajp_read_header: ajp_ilink_receive failed
[Fri Aug 14 18:27:07 2015] [error] (120006)APR does not understand this error code: proxy: read response failed from (null) (*)
[Fri Aug 14 18:27:07 2015] [debug] proxy_util.c(2036): proxy: AJP: has released connection for (*)
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (2) init rewrite engine with requested uri /app/launch.jsp
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (3) applying pattern '^\\/app\\/?$' to uri '/app/launch.jsp'
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (3) applying pattern '^\\/app\\/?$' to uri '/app/launch.jsp'
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (3) applying pattern '^/app/(.+\\.(?:jsp|do|rpc).*)$' to uri '/app/launch.jsp'
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (2) rewrite '/app/launch.jsp' -> 'ajp://ApplicationServerFullName:8009/app/launch.jsp'
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (2) forcing proxy-throughput with ajp://ApplicationServerFullName:8009/app/launch.jsp
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] [Web_Server_Ful_Name/sid#79a028][rid#7aed50/initial] (1) go-ahead with proxy request proxy:ajp://ApplicationServerFullName:8009/app/launch.jsp [OK]
10.16.1.3 - - [14/Aug/2015:18:27:07 +0200] "GET /app/launch.jsp HTTP/1.1" 503 323 0