1.增加NameVirtualHost,在httpd.conf添加NameVirtualHost将其打开。
NameVirtualHost 192.168.30.95:80
2.尝试使用两个不同域名VirtualHost的方案,未能实现。
PHP应用 – www.wenjuanpai.com
Java应用 - java.wenjuanpai.com
因为单点登录需要使用Cookies,而该方案使用了"www"和"java"两个子域,默认的,每个域的Cookies是独立的。
事实上,跨域Cookies共享是可行的,需要程序员额外的Code工作。
3.尝试使用不同端口VirtualHost的方案,可以实现。
配置如下
NameVirtualHost 192.168.30.95:80
NameVirtualHost 192.168.30.95:81<VirtualHost 192.168.30.95:80>
DocumentRoot "D:/wamp/www/wenjuanpai"
ServerName www.wenjuanpai.com
<Directory "D:/wamp/www/wenjuanpai">
allow from all
Options +Indexes
</Directory>
……
</VirtualHost><VirtualHost 192.168.30.95:81>
ServerName www.wenjuanpai.com
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>
以上方案,直观上看,和之前的采用8888端口的方案,似乎丢失一样的,但是内部机制已经改变了。
为什么要这么做?引用某位老师的一段说明:
既然 Tomcat 本身已经可以提供这样的服务,我们为什么还要引入 Apache 或者其他的一些专门的 HTTP 服务器呢?原因有下面几个:
1. 提升对静态文件的处理性能
2. 利用 Web 服务器来做负载均衡以及容错
3. 无缝的升级应用程序
这三点对一个 web 网站来说是非常之重要的,我们希望我们的网站不仅是速度快,而且要稳定,不能因为某个 Tomcat 宕机或者是升级程序导致用户访问不了,而能完成这几个功能的、最好的 HTTP 服务器也就只有 apache 的 http server 了,它跟 tomcat 的结合是最紧密和可靠的。
当然,完美的方案,肯定不是“不同端口VirtualHost”的方案。只要我们的程序员够给力,能在代码中实现Cookies跨域,那才是真正的无缝整合。