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> 

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

猜你喜欢

转载自blog.csdn.net/qq_37192063/article/details/81234782
今日推荐