apache + tomcat实现多域名、多端口绑定 Tomcat 隐藏非80端口

一、准备材料   windows 下安装好Apache  (可以运行php项目 ) ,安装好Tomcat(运行Java的jsp项目)。 

我本地安装的是   Apache 2.4.9   和   Tomcat/8.5.11。

 

二、配置主机头 

打开 C:\Windows\System32\drivers\etc\hosts 文件  ,添加

127.0.0.1       super.179.com
127.0.0.1       yjq.test1.com
127.0.0.1       yjq.test2.com
 

保存之后 ,打开cmd  输入 ping super.179.com 测试一下是否指向本地服务器。

 

三、配置Tomcat ,   

把你的 Java 项目放到E:\wamp\Tomcat 8.5\webapps 目录下,

 打开E:\wamp\Tomcat 8.5\conf\server.xml 文件, 以  <Service>  为节点,复制<Service>里面的内容,

例如,下面就配置了两个项目对应不同的端口 。

  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8080" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

		<Context path="" docBase="E:\wamp\Tomcat 8.5\webapps\MbPc0338\" reloadable="true" 
		   caseSensitive="false" debug="0"></Context> 			   		   
      </Host>
    </Engine>
  </Service>
  
   <Service name="Catalina">
    <Connector port="9090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="9090" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="yjq.test2.com">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="yjq.test2.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

		<Context path="" docBase="E:\wamp\Tomcat 8.5\webapps\MbPc0796" reloadable="true" 
		   caseSensitive="false" debug="0"></Context> 			   		   
      </Host>
    </Engine>
  </Service> 

 我这里是把server.xml里面的注释全部去掉了,所以看起来 比较简洁。

port="8080"   为端口号  ,

docBase="E:\wamp\Tomcat 8.5\webapps\MbPc0338" 为项目路径

 

重启 Tomcat ,在浏览器输入 http://127.0.0.1:8080/MbPc0338/computer/index.html  可以运行, 

在浏览器输入 http://127.0.0.1:9090/MbPc0796/computer/index.html  可以运行,  

那么 Tomcat就配置成功。

 

四、配置 Apache 

打开 E:\wamp\bin\apache\apache2.4.9\conf\httpd.conf  文件 将以下三项的注释符"#"去掉

 1   LoadModule proxy_module modules/mod_proxy.so

 2    LoadModule proxy_http_module modules/mod_proxy_http.so
 3   Include conf/extra/httpd-vhosts.conf

 

再打开 E:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf 在结尾加上

#这个是必须添加的,相当于把httpd.conf文件下的  Require local 改为了 Require all granted  
<Directory "E:\wamp\www">  
    Options Indexes FollowSymLinks  
    AllowOverride all  
    Require all granted  
</Directory>  


#这是配置java项目的,结合Tomcat的 server.xml文件

<VirtualHost *:80>
    ServerName super.179.com
   ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

<VirtualHost *:80>
    ServerName yjq.test2.com
   ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
ProxyPass / http://localhost:9090/
ProxyPassReverse / http://localhost:9090/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

 

完了之后重启Apache 服务,在浏览器输入http://super.179.com/MbPc0338/computer/index.html 可以运行,

在浏览器输入http://yjq.test2.com/MbPc0796/computer/index.html 可以运行, 则配置成功了。

 这两个链接相当于前面的  http://127.0.0.1:9090/MbPc0796/computer/index.html 和

http://127.0.0.1:8080/MbPc0338/computer/index.html  ,

这样就达到了Tomcat 布置多域名 多项目以及 不同端口  且非80端口隐藏的目的,

当然,你可以在MbPc0338目录下添加一个index.html文件 , 这个文件添加如下代码,

就可以在浏览器输入你的域名直接访问到你的项目

	<script>  
	var dqurl = window.location.href;
	//var test1 = 'index2.html';
	var urlOne = new RegExp('yjq.test2.com');
	var urlTwo = new RegExp('super.179.com');
	
    //alert(dqurl);
	if(urlOne.test(dqurl)){
	//alert(1);
		   window.location.replace("http://yjq.test2.com/MbPc0796/computer/index.html");
	}else if(urlTwo.test(dqurl)){
	//alert(2);
		   window.location.replace("http://super.179.com/MbPc0338/computer/index.html");
	}
	
	</script> 

 

如果还有疑问,欢迎留言。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值