一、准备材料 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 "%r" %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 "%r" %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>
如果还有疑问,欢迎留言。