一台服务器部署tomcat + apache

时间:2021-08-20 15:37:32
我现在服务器上有java项目用tomcat运行
现在有个php项目想运行在这个服务器上,但是由于tomcat集成插件运行php失败
现在要用apache 但是问题又来了,他们都要用80端口
求高手解决

19 个解决方案

#1


tomcat 放8080之类的其他端口

然后用apache的反向代理功能

这样的问题就是你tomcat的不能用根路径

#2


引用 1 楼 skgary 的回复:
tomcat 放8080之类的其他端口

然后用apache的反向代理功能

这样的问题就是你tomcat的不能用根路径


大神  我现在想从tomcat代理apache  tomcat已经有项目了  不能动   有解吗

#3


求高手指点在线等

#4


80端口被tomcat占了所以它可以使用8080端口了。  也可以用相关的端口号

#5


把apache的端口设成其它值,然后在tomcat里加一个工程,接收特定的url,转发给apache,然后把apache返回的结果返给客户端。

包括cookie在内的所有请求头和响应头都要原样转发,如果php项目里需要用到的话。

#6


引用 4 楼 u013456370 的回复:
80端口被tomcat占了所以它可以使用8080端口了。  也可以用相关的端口号

但是域名访问时  adc.com:8080
这样肯定不行吧

#7


引用 5 楼 arkwrightzhn 的回复:
把apache的端口设成其它值,然后在tomcat里加一个工程,接收特定的url,转发给apache,然后把apache返回的结果返给客户端。

包括cookie在内的所有请求头和响应头都要原样转发,如果php项目里需要用到的话。


怎么写这个url
我查资料说用映射  我不知道怎么写   希望高手指点指点

#8


引用 2 楼 u012285326 的回复:
Quote: 引用 1 楼 skgary 的回复:

tomcat 放8080之类的其他端口

然后用apache的反向代理功能

这样的问题就是你tomcat的不能用根路径


大神  我现在想从tomcat代理apache  tomcat已经有项目了  不能动   有解吗


动一动不就是几分钟 的事情嘛。。。

#9


引用 8 楼 skgary 的回复:
Quote: 引用 2 楼 u012285326 的回复:

Quote: 引用 1 楼 skgary 的回复:

tomcat 放8080之类的其他端口

然后用apache的反向代理功能

这样的问题就是你tomcat的不能用根路径


大神  我现在想从tomcat代理apache  tomcat已经有项目了  不能动   有解吗


动一动不就是几分钟 的事情嘛。。。

不是  我现在想的是怎么能不改变原有项目解决

#10


那实在不行,就用俩IP呗,tomcat/apache都在指定的IP上。

#11


引用 10 楼 skgary 的回复:
那实在不行,就用俩IP呗,tomcat/apache都在指定的IP上。

apache怎么映射到tomcat上?

#12


引用 11 楼 u012285326 的回复:
Quote: 引用 10 楼 skgary 的回复:

那实在不行,就用俩IP呗,tomcat/apache都在指定的IP上。

apache怎么映射到tomcat上?


反向代理,或者虚拟主机。。。

#13


引用 5 楼 arkwrightzhn 的回复:
把apache的端口设成其它值,然后在tomcat里加一个工程,接收特定的url,转发给apache,然后把apache返回的结果返给客户端。

包括cookie在内的所有请求头和响应头都要原样转发,如果php项目里需要用到的话。

#14


apache怎么映射到tomcat上--你是tomcat上项目不能动?也就是换个端口都不行?

apache里建虚拟主机,反向代理tomcat上的8080不行吗?分开两个url映射就行了,一个/jspproject指向tomcat,一个/phpproject指向apache自己htdoc目录

#15


引用 14 楼 qingyuan18 的回复:
apache怎么映射到tomcat上--你是tomcat上项目不能动?也就是换个端口都不行?

apache里建虚拟主机,反向代理tomcat上的8080不行吗?分开两个url映射就行了,一个/jspproject指向tomcat,一个/phpproject指向apache自己htdoc目录

敢问高手 具体代码

#16


如果可以装配两个网卡,分别指向不同的IP应该可以。
另外安装一个虚拟机应该是最简单的方案,只是系统开销太大。

最合理的解决方案是用apache反向代理tomcat,用apache接收的有请求,然后按不同的规则转发给tomcat或php程序。这是最自然的做法,也是很多成熟案例的做法。你说不想动原来tomcat的想法其实是不成立的,你唯一需要注意的就是反向代理的配置多试验一下,避免线上系统受影响,可能遇到的问题是你原来tomcat里的程序如果有写死url的情况,可能会受到影响,我想不起来了,如果遇到转发时会多出一些东西在url里的话,可能需要在apache的反向代理规则里写一些脚本逻辑。这个我也不会,以前用nginx反向代理时出过这个问题,后来没有去深入研究。

至于我在5楼上说的用tomcat代理apache的做法。。。有理论上的可行性,但是需要做的工作量太大,相当于开发一个tomcat反向代理插件了,只不过如果你需求不是很复杂的话,比开发一个反向代理插件要容易些。

#17


引用 16 楼 arkwrightzhn 的回复:
如果可以装配两个网卡,分别指向不同的IP应该可以。
另外安装一个虚拟机应该是最简单的方案,只是系统开销太大。

最合理的解决方案是用apache反向代理tomcat,用apache接收的有请求,然后按不同的规则转发给tomcat或php程序。这是最自然的做法,也是很多成熟案例的做法。你说不想动原来tomcat的想法其实是不成立的,你唯一需要注意的就是反向代理的配置多试验一下,避免线上系统受影响,可能遇到的问题是你原来tomcat里的程序如果有写死url的情况,可能会受到影响,我想不起来了,如果遇到转发时会多出一些东西在url里的话,可能需要在apache的反向代理规则里写一些脚本逻辑。这个我也不会,以前用nginx反向代理时出过这个问题,后来没有去深入研究。

至于我在5楼上说的用tomcat代理apache的做法。。。有理论上的可行性,但是需要做的工作量太大,相当于开发一个tomcat反向代理插件了,只不过如果你需求不是很复杂的话,比开发一个反向代理插件要容易些。


一个网卡俩IP也是没有任何问题滴。

#18


引用 16 楼 arkwrightzhn 的回复:
如果可以装配两个网卡,分别指向不同的IP应该可以。
另外安装一个虚拟机应该是最简单的方案,只是系统开销太大。

最合理的解决方案是用apache反向代理tomcat,用apache接收的有请求,然后按不同的规则转发给tomcat或php程序。这是最自然的做法,也是很多成熟案例的做法。你说不想动原来tomcat的想法其实是不成立的,你唯一需要注意的就是反向代理的配置多试验一下,避免线上系统受影响,可能遇到的问题是你原来tomcat里的程序如果有写死url的情况,可能会受到影响,我想不起来了,如果遇到转发时会多出一些东西在url里的话,可能需要在apache的反向代理规则里写一些脚本逻辑。这个我也不会,以前用nginx反向代理时出过这个问题,后来没有去深入研究。

至于我在5楼上说的用tomcat代理apache的做法。。。有理论上的可行性,但是需要做的工作量太大,相当于开发一个tomcat反向代理插件了,只不过如果你需求不是很复杂的话,比开发一个反向代理插件要容易些。


谢谢高手指点  我打算用apache代理tomcat

#19


这个可以解决的,tomcat有个8009端口就是用来解决这个问题的。

我曾经在linux上操作过。

#1


tomcat 放8080之类的其他端口

然后用apache的反向代理功能

这样的问题就是你tomcat的不能用根路径

#2


引用 1 楼 skgary 的回复:
tomcat 放8080之类的其他端口

然后用apache的反向代理功能

这样的问题就是你tomcat的不能用根路径


大神  我现在想从tomcat代理apache  tomcat已经有项目了  不能动   有解吗

#3


求高手指点在线等

#4


80端口被tomcat占了所以它可以使用8080端口了。  也可以用相关的端口号

#5


把apache的端口设成其它值,然后在tomcat里加一个工程,接收特定的url,转发给apache,然后把apache返回的结果返给客户端。

包括cookie在内的所有请求头和响应头都要原样转发,如果php项目里需要用到的话。

#6


引用 4 楼 u013456370 的回复:
80端口被tomcat占了所以它可以使用8080端口了。  也可以用相关的端口号

但是域名访问时  adc.com:8080
这样肯定不行吧

#7


引用 5 楼 arkwrightzhn 的回复:
把apache的端口设成其它值,然后在tomcat里加一个工程,接收特定的url,转发给apache,然后把apache返回的结果返给客户端。

包括cookie在内的所有请求头和响应头都要原样转发,如果php项目里需要用到的话。


怎么写这个url
我查资料说用映射  我不知道怎么写   希望高手指点指点

#8


引用 2 楼 u012285326 的回复:
Quote: 引用 1 楼 skgary 的回复:

tomcat 放8080之类的其他端口

然后用apache的反向代理功能

这样的问题就是你tomcat的不能用根路径


大神  我现在想从tomcat代理apache  tomcat已经有项目了  不能动   有解吗


动一动不就是几分钟 的事情嘛。。。

#9


引用 8 楼 skgary 的回复:
Quote: 引用 2 楼 u012285326 的回复:

Quote: 引用 1 楼 skgary 的回复:

tomcat 放8080之类的其他端口

然后用apache的反向代理功能

这样的问题就是你tomcat的不能用根路径


大神  我现在想从tomcat代理apache  tomcat已经有项目了  不能动   有解吗


动一动不就是几分钟 的事情嘛。。。

不是  我现在想的是怎么能不改变原有项目解决

#10


那实在不行,就用俩IP呗,tomcat/apache都在指定的IP上。

#11


引用 10 楼 skgary 的回复:
那实在不行,就用俩IP呗,tomcat/apache都在指定的IP上。

apache怎么映射到tomcat上?

#12


引用 11 楼 u012285326 的回复:
Quote: 引用 10 楼 skgary 的回复:

那实在不行,就用俩IP呗,tomcat/apache都在指定的IP上。

apache怎么映射到tomcat上?


反向代理,或者虚拟主机。。。

#13


引用 5 楼 arkwrightzhn 的回复:
把apache的端口设成其它值,然后在tomcat里加一个工程,接收特定的url,转发给apache,然后把apache返回的结果返给客户端。

包括cookie在内的所有请求头和响应头都要原样转发,如果php项目里需要用到的话。

#14


apache怎么映射到tomcat上--你是tomcat上项目不能动?也就是换个端口都不行?

apache里建虚拟主机,反向代理tomcat上的8080不行吗?分开两个url映射就行了,一个/jspproject指向tomcat,一个/phpproject指向apache自己htdoc目录

#15


引用 14 楼 qingyuan18 的回复:
apache怎么映射到tomcat上--你是tomcat上项目不能动?也就是换个端口都不行?

apache里建虚拟主机,反向代理tomcat上的8080不行吗?分开两个url映射就行了,一个/jspproject指向tomcat,一个/phpproject指向apache自己htdoc目录

敢问高手 具体代码

#16


如果可以装配两个网卡,分别指向不同的IP应该可以。
另外安装一个虚拟机应该是最简单的方案,只是系统开销太大。

最合理的解决方案是用apache反向代理tomcat,用apache接收的有请求,然后按不同的规则转发给tomcat或php程序。这是最自然的做法,也是很多成熟案例的做法。你说不想动原来tomcat的想法其实是不成立的,你唯一需要注意的就是反向代理的配置多试验一下,避免线上系统受影响,可能遇到的问题是你原来tomcat里的程序如果有写死url的情况,可能会受到影响,我想不起来了,如果遇到转发时会多出一些东西在url里的话,可能需要在apache的反向代理规则里写一些脚本逻辑。这个我也不会,以前用nginx反向代理时出过这个问题,后来没有去深入研究。

至于我在5楼上说的用tomcat代理apache的做法。。。有理论上的可行性,但是需要做的工作量太大,相当于开发一个tomcat反向代理插件了,只不过如果你需求不是很复杂的话,比开发一个反向代理插件要容易些。

#17


引用 16 楼 arkwrightzhn 的回复:
如果可以装配两个网卡,分别指向不同的IP应该可以。
另外安装一个虚拟机应该是最简单的方案,只是系统开销太大。

最合理的解决方案是用apache反向代理tomcat,用apache接收的有请求,然后按不同的规则转发给tomcat或php程序。这是最自然的做法,也是很多成熟案例的做法。你说不想动原来tomcat的想法其实是不成立的,你唯一需要注意的就是反向代理的配置多试验一下,避免线上系统受影响,可能遇到的问题是你原来tomcat里的程序如果有写死url的情况,可能会受到影响,我想不起来了,如果遇到转发时会多出一些东西在url里的话,可能需要在apache的反向代理规则里写一些脚本逻辑。这个我也不会,以前用nginx反向代理时出过这个问题,后来没有去深入研究。

至于我在5楼上说的用tomcat代理apache的做法。。。有理论上的可行性,但是需要做的工作量太大,相当于开发一个tomcat反向代理插件了,只不过如果你需求不是很复杂的话,比开发一个反向代理插件要容易些。


一个网卡俩IP也是没有任何问题滴。

#18


引用 16 楼 arkwrightzhn 的回复:
如果可以装配两个网卡,分别指向不同的IP应该可以。
另外安装一个虚拟机应该是最简单的方案,只是系统开销太大。

最合理的解决方案是用apache反向代理tomcat,用apache接收的有请求,然后按不同的规则转发给tomcat或php程序。这是最自然的做法,也是很多成熟案例的做法。你说不想动原来tomcat的想法其实是不成立的,你唯一需要注意的就是反向代理的配置多试验一下,避免线上系统受影响,可能遇到的问题是你原来tomcat里的程序如果有写死url的情况,可能会受到影响,我想不起来了,如果遇到转发时会多出一些东西在url里的话,可能需要在apache的反向代理规则里写一些脚本逻辑。这个我也不会,以前用nginx反向代理时出过这个问题,后来没有去深入研究。

至于我在5楼上说的用tomcat代理apache的做法。。。有理论上的可行性,但是需要做的工作量太大,相当于开发一个tomcat反向代理插件了,只不过如果你需求不是很复杂的话,比开发一个反向代理插件要容易些。


谢谢高手指点  我打算用apache代理tomcat

#19


这个可以解决的,tomcat有个8009端口就是用来解决这个问题的。

我曾经在linux上操作过。

#20