联系方式
Java服务器开发群:66728073
游戏开发者高级群:398808948
Unity3d游戏开发:286114103
龙井,铁观音,茶叶
单ip多域名部署多个javaWeb项目(因为微信只能使用80端口)
2017-03-02 23:05浏览数:1343 

在公司中开发遇到了一个linux服务器上需要部署多个项目的问题,这些项目都是独立的没有任何关联.

而这些项目分别对应一个域名,如A项目对应a.com,B项目对应b.com并且这些项目都部署在tomcat中,但只有一个服务器,你懂滴==!(PS:因为微信的原因,只能使用80端口)

如192.168.0.1对应a.com和b.com这两个域名,那么当前点击都究竟进入的是哪个项目就不得而知了.

现在有两种方式可以解决这个问题,一个是通过wdcp,一个是tomcat自身的配置.

方法一:tomcat配置(只需要一个tomcat,配置步骤少,不容易出错,建议第一种方法)

   解压一个tomcat出来,并进入server.xml中,name填域名,appBase填war解压之后的路径,注意在loginServer下新建ROOT目录,将解压之后的war包里的内容放入ROOT中,然后就可以启动tomcat了,实现单ip下多域名访问不同的项目。

<Hostname="aaa1.panda.com"appBase="/java/aaa1/loginServer/"unpackWARs="true"autoDeploy="true"xmlValidation="false"xmlNamespaceAware="false"></Host><Hostname="aaa2.panda.com"appBase="/java/aaa2/loginServer/"unpackWARs="true"autoDeploy="true"xmlValidation="false"xmlNamespaceAware="false"></Host><Hostname="aaa3.panda.com"appBase="/java/aaa3/loginServer/"unpackWARs="true"autoDeploy="true"xmlValidation="false"xmlNamespaceAware="false"></Host>

方法二:wdcp配置(因为wdcp本来是支持php的,现在虽然可以用来支持java,但总会出问题,而且需要配置的地方比较多,所以不推荐使用第二种方法,推荐第一种方法)

   1.安裝wdcp,具体的安装方法可以在百度上搜索到。

   2.通过ip:8088进入wdcp管理界面,在新建站点里,填上域名

3.在规则管理处,新建aaa_apache配置文件,这里就可以通过将linux上8088的端口映射出来成80端口

ProxyPreserveHost OnProxyPass / http://aaa.panda.com:8088/LoginServer/ProxyPassReverse / http://aaa.panda.com:8088/LoginServer/

4.然后回到新建站点处,将rewirte规则选为刚才的aaa_apache的规则

5.到目前为止,wdcp上配置完成

6.在linux上解压出多个tomcat,并进入tomcat中的server.xml中,在这里需要修改三个地方的端口,否则多个tomcat就无法启动

<Serverport="8005"shutdown="SHUTDOWN"><ListenerclassName="org.apache.catalina.startup.VersionLoggerListener" />
<Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443" />

7.将对应的war放入tomcat中,注意,路径要与第三步中映射的路径要一致,接下来就可以启动这几个tomcat,就可以实现单ip下一个域名对应一个项目。


转载自:https://my.oschina.net/dzc1993/blog/849788