Apache和Tomcat公用80端口

Apache和Tomcat公用80端口,原理主要利用apache的代理。

需求:服务器已经存在了很多PHP项目,现在我新写的javaWeb项目要部署到同一服务器中新安装的Tomcat里面去,并且可以用域名进行访问。

           因为用域名再加8080端口访问有点low,所以就去做了如下几步改变:

第一步:启用apache的代理模块(修改httpd.conf配置)

1.首先我在Apacheconf目录下面找到httpd.conf文件,

2.打开该文件依次找到以下几行代码(它们可能不是挨着的,用Ctrl+F):

#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so 

3.然后把每行代码前面的“#”号去掉,这样就打开了apache的代理模块了

第二步:然后建立一个虚拟主机

还是在httpd.conf添加以下标签(找个自己觉得舒服的位置.0.0)

<VirtualHost *:80> 
   ServerName www.a.com 
   ProxyPass / http://www.a.com:8080/ 
   ProxyPassReverse / http://www.a.com:8080/
</VirtualHost> 

www.a.com 处是你的域名,localhost,IP都可以

注意:

tomcat的server.xml文件里:

1.还是用原来的8080端口

2.Host标签中的要加上Context标签,里面写好项目名

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
    <Context path="" docBase="项目名" debug="0" reloadable="true" caseSensitive="true" />
</Host>

 

其他办法,开拓思维:

其他软件共用80端口也是同理的,比如:apache和IIS两种软件,

实在不行,还有其他办法:

1.nginx也可以同理实现,缺点:如果安装nginx之前,服务器就有了其他项目,那么需要删除掉站点,安装好了再重新建立站点,怕不是在逗我玩?

2.IIS下建立站点?这种方法只是写一个html,我试了许久,不知道这个htm该放在哪里,所以没成功

3.有钱人,再买个服务器,哈哈哈

感谢:

解决方法灵感来源于这两篇文章

apache和tomcat公用80端口

域名带端口的解决办法

原文地址:https://www.cnblogs.com/HelloXTF/p/11983283.html