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.有钱人,再买个服务器,哈哈哈
感谢:
解决方法灵感来源于这两篇文章